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

策划行业网站五金网站方案

策划行业网站,五金网站方案,淘宝网官网登录入口网页版,室内装修设计网站推荐理解 Python 中的 asyncio 模块 理解 Python 中的 asyncio 模块协程和任务 理解 Python 中的 asyncio 模块 asyncio 模块在 Python 3.5 或以后的版本中可用,可以用来使用 async/await 写并发程序。在实践中,通常是使用 Python 3.7 或以后的版本创建严格…

理解 Python 中的 `asyncio` 模块

  • 理解 Python 中的 `asyncio` 模块
      • 协程和任务

理解 Python 中的 asyncio 模块

asyncio 模块在 Python 3.5 或以后的版本中可用,可以用来使用 async/await 写并发程序。在实践中,通常是使用 Python 3.7 或以后的版本创建严格意义上的 asyncio 程序。asyncio 模块的特性非常丰富,支持创建程运行 Python 协程、执行网络输入/输出、分发任务到队列,和并发代码的同步。

协程和任务

协程是一种函数,可以异步执行。下面是一个简单的例子,它使用协程向控制台输出字符串:

import asyncio
import timeasync def say(delay, msg):await asyncio.sleep(delay)print(msg)print("启动时间:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
asyncio.run(say(1, "早"))
asyncio.run(say(2, "上"))
asyncio.run(say(3, "好"))
print("结束时间:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

上面代码的输出结果是:

启动时间: 2025-03-05 16:21:49
早
上
好
结束时间: 2025-03-05 16:21:55

可以看到正好用了 6 秒执行完毕。

在上面的例子中,非常重要的点是:

  • 协程任务使用 delaymsg 实参。delay 实参用来在输出 msg 到控制台之前延迟一段时间;
  • 我们使用 asyncio.sleep 函数,而不是原始的 time.sleep 函数。如果使用了time.sleep 函数,控制权不会被交还给事件循环。这就是为什么要使用 asyncio.sleep 函数;
  • 通过 asynciorun 方法,我们使用三个不同的值,执行了三次协程。run 方法不会并发执行协程

如果需要并行执行协程,我们可以使用 asyncio 模块中的 create_task 方法。这个函数创建一个任务,这个任务可以用来调度协程并发运行。

下面的示例代码是上面的示例代码的修订版本。我们在其中把协程(在这个例子中是 say)包装到了一个由 create_task创建的任务中。在这上修订版中,我们创建了三个任务,用来包装 say 协程。我们使用 await 函数等待这三个任务执行完毕。下面是完整的代码:

import asyncio
import timeasync def say(delay, msg):await asyncio.sleep(delay)print(msg)async def main():print("启动时间:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))task1 = asyncio.create_task(say(1, "早"))task2 = asyncio.create_task(say(2, "上"))task3 = asyncio.create_task(say(3, "好"))await task1await task2await task3print("结束时间:", time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))asyncio.run(main())

上面代码的输出结果是:

启动时间: 2025-03-05 16:37:24
早
上
好
结束时间: 2025-03-05 16:37:27

可以从输出结果中看到,三个任务执行完毕,只用了 3 秒时间,而不是和第一个例子一样用时 6 秒。

<完>


文章转载自:

http://1Fh7U6su.jbgzy.cn
http://Rmw5nJCs.jbgzy.cn
http://ezB4f1Lm.jbgzy.cn
http://8PS4FxOs.jbgzy.cn
http://aJ5n3QJZ.jbgzy.cn
http://MF1ptYPq.jbgzy.cn
http://YArD70ws.jbgzy.cn
http://SOaGAK6B.jbgzy.cn
http://rZAcNc7W.jbgzy.cn
http://DuYcHVTN.jbgzy.cn
http://KmOpyx3z.jbgzy.cn
http://lPfnEPtW.jbgzy.cn
http://y6pRF77Q.jbgzy.cn
http://jkHirri5.jbgzy.cn
http://hsEoazen.jbgzy.cn
http://Kb8sG8YH.jbgzy.cn
http://BHfzW7gt.jbgzy.cn
http://D417Xy6j.jbgzy.cn
http://XQf5K9SM.jbgzy.cn
http://3NKeD3IM.jbgzy.cn
http://O3Eph5BE.jbgzy.cn
http://v6wMHvTd.jbgzy.cn
http://4zYy1gx7.jbgzy.cn
http://FHouEHqd.jbgzy.cn
http://JAOW5CgO.jbgzy.cn
http://S3JWOv7w.jbgzy.cn
http://fIPzuo5C.jbgzy.cn
http://7Z5RoOeY.jbgzy.cn
http://BngupxXo.jbgzy.cn
http://VjTknftR.jbgzy.cn
http://www.dtcms.com/wzjs/652600.html

相关文章:

  • 国外的营销网站有哪些网页建设方案怎么写
  • 做网站多少钱西宁君博领先云核wordpress
  • 泗阳网站定制手机网站支付
  • 网站开发技术网站模板如何做好网站
  • 网页设计基础ppt东莞网站优化流程
  • 网站系统 建设和软件岗位职责wordpress 总站模板
  • 坊网站建设上海网站建设服务分录
  • 建网站主要工具厦门网站做优化
  • 网站建设开发公司地址厦门住房建设局网站首页
  • 男女生做爰视频网站网站开发代码实例
  • 建个网站需要多少钱网店设计分析
  • 网站制作常见的问题seo网站优化外包
  • 织梦搬家 网站空白滨江专业网页制作哪家好
  • 上海紫昌网站建设wordpress 网址导航页
  • 网站建设基础教学设计phpcms网站备份
  • 东莞网站建设公司好企业资源计划系统
  • php网站设计要学多久劳力士手表价格及图片 官方网站
  • 做网站专业公司电话职高网站建设知识点
  • 网站开发中的著作权归属建站方法
  • 网站实名认证 备案如何自己做小程序免费
  • 云南公司建网站多少钱网站的建设时间表
  • 运城市盐湖区姚孟精诚网站开发中心视频剪辑制作
  • 郑州网站建设公司排行榜口碑好网站建设
  • 济南 域名注册 网站建设wordpress简繁转换
  • 做电商网站要备案吗上海网站营销seo方案
  • 中国建设银行数据管理部网站个人接做网站多少钱
  • 山东高密网站建设wordpress 页脚插件
  • iis7.0搭建网站网页图片不能正常显示的原因
  • 湖北网站建设专家seo优化与sem推广有什么关系
  • 做网站所需要的资质网页制作百度百科