当前位置: 首页 > news >正文

天津模板做网站网络安全教育知识

天津模板做网站,网络安全教育知识,内网如何做网站访问,网站百度云最近在学习python的异步编程#xff0c;这里就简单记录一下#xff0c;免得日后忘记。 首先#xff0c;python异步实现大概有三种方式#xff0c;多进程#xff0c;多线程和协程#xff1b;多线程和多进程就不用多说了#xff0c;基本上每种语言都会有多进行和多线程的…最近在学习python的异步编程这里就简单记录一下免得日后忘记。 首先python异步实现大概有三种方式多进程多线程和协程多线程和多进程就不用多说了基本上每种语言都会有多进行和多线程的功能而python异步编程的特点主要是协程。 多进程多线程和协程其实从本质上来说都是为了提升程序的运行效率节省资源因此三者没用好坏之分只是不同的场景适合不同的任务。 比如多进程计算机是以进程为单位进行资源划分的每一个进程都有其独立的资源管理而多线程是共享一份进程资源而线程是CPU调度的最小单位。最后就是协程协程首先是单线程的只不过在一些耗时的任务中单线程会等待任务的完成然后再执行下一步而协程的作用就是提升单线程的执行效率在等待的过程中可以继续执行别的任务。 为什么会有协程的出现  在传统的异步编程中大都使用多进程或多线程进行任务的管理与调度但进程和线程有一个很大的问题就是上下文切换不论是进程还是线程但CPU在切换上下文的时候需要把当前线程或进程的资源进行存储——也就是入栈而这是需要消耗系统资源的因此为了提升资源的利用效率协程就出现了协程由于是单线程的因此其就避免了线程切换的资源开销而由于协程能够在等待任务执行的过程中去执行其它任务因此其就间接实现了“伪多线程”也叫做微线程。 那协程是怎么实现的呢 在python之前的版本中协程是通过greenlet和yield关键字实现的而随着python3.4的发布asyncio被引入进来而且在之后的版本中又引入了await/async关键字这使得python协程编程变得更简单更高效。 在asyncio异步工具包中有几个关键的词协程-coroutine任务-taskevent loop-事件循环; asyncio就是通过事件循环实现的协程而协程和任务是其两个关键对象协程对应两种情况——协程函数和协程对象而async就是用来定义协程对象的由async定义的函数就是协程函数。 而await关键字是用来等待任务执行并通知事件循环来进行任务调度。 async def hello():print(开始)print(fstarted at {time.strftime(%X)})await asyncio.sleep(10)print(协程) asyncio.run(hello()) 以上就是最简单的协程代码但这里并没有实现真正的协程函数还是会休眠十秒之后才会结束。 要想实现真正的协程task-任务的作用就出现了 async def fun():print(函数)await asyncio.sleep(3)print(函数完成)async def main():# await asyncio.sleep(3)print(主函数)print(fstarted at {time.strftime(%X)})task1 asyncio.create_task(fun())task2 asyncio.create_task(fun())await asyncio.gather(task1, task2)print(fstarted at {time.strftime(%X)})asyncio.run(main()) 函数fun是一个协程函数而在主函数中会使用asyncio.create_task函数创建两个任务而asyncio.gather把两个任务纳入到事件循环的管理中然后通过ayncio.run函数执行事件循环。 如下图所示在同步编程中单线程执行fun函数应该需要33六秒的时间才能执行完成而使用了协程之后只用了3秒就执行完成。 这就是协程的作用。 在python使用协程编程的过程中主要使用的就是await/async和asyncio工具包async用来定义协程函数await配合async处理协程对象asyncio用来调度和管理协程对象。 await只能在async关键字定义的函数或对象中使用。 使用async/await来创建协程函数使用asyncio来创建任务再用asyncio来执行任务。
http://www.w-s-a.com/news/648818/

相关文章:

  • 北京网站开发建设南昌网站小程序开发
  • 网站如何做ip签名图片宁波互联网
  • 中山小榄网站建设长沙网络营销品牌排名
  • 推广优化厂商联系方式网站推广教程优化整站
  • 为外国企业做中文网站建设网站建设单位哪家好
  • 生物制药公司网站模板有没有专业做steam创客的网站
  • 福田做棋牌网站建设找哪家效益快弄一个微信小程序多少钱
  • 成都哪家做网站建设比较好做推广赚钱的网站
  • 常州专门做网站的公司有哪些网页模板下载网站10
  • linx服务器怎么做网站做长页网站
  • 汕头网站建设sagevis服装设计公司有什么职位
  • 网站流量分析报告医院网站制作公司
  • 仿58网站怎么做邯郸网站设计多少钱
  • 广州网站制作开发wordpress中文固定连接
  • 成都网站建设公司盈利吗专门做二手手机的网站有哪些
  • 手机网站设计需要学什么wordpress读法
  • WordPress pajx天津短视频seo
  • 检察院门户网站建设情况总结深圳网站制作长沙
  • 单页导航网站模板搜索量查询
  • 如何在一个地方建设网站营销型定制网站
  • 保定网站建设方案维护动易网站中添加邮箱
  • 简易网站的html代码wordpress音乐html
  • 四川住房和城乡建设厅网站打不开海山网站建设
  • 深圳设计功能网站如何用html制作网站
  • 网络优化软件下载竞价排名和seo的区别
  • 龙华新区做网站中高端网站建设
  • 网站开发小图标大全手机网站设计开发
  • 网页设计设计一个网站口碑营销的优点
  • 枣庄建网站的公司唐山企业网络推广培训
  • 张家界建设企业网站学校资源网站建设方案