python asyncio
python协程库asyncio的运行方式有哪些?我们一起了解一下吧!
asyncio 是以协程的模式来编写并发的库,使用 async/await 语法。在 IO密集型 的网络编程里,异步IO 协程 省去了开辟新的线程和进程的开销。asyncio 是 Python3.4 版本引入到标准库,python3.5 加入了 async/await 特性。下面我们就来分享一下运行协程的几种方式。
使用 async 声明协程
async def asyncTask():
# 协程休眠
await asyncio.sleep(1)
print(time.strftime('%X'))
运行协程的几种方式:
1、asyncio.run() 函数用来在非协程函数中调用协程
asyncio.run(asyncTask())
2、使用 await 等待一个协程。
await asyncTask()
3、asyncio.create_task() 用函数将协程打包为一个 Task 排入日程准备执行,返回 asyncio.Task 对象。
此函数 在 Python 3.7 中被加入。
task1 = asyncio.create_task(asyncTask1())task2 = asyncio.create_task(asyncTask2())await task1await task2
4、使用 asyncio.gather() 函数来并发多个协程。
tasks = asyncio.gather(asyncTask1(), asyncTask2())tasks2 = asyncio.gather(*[asyncTask1(), asyncTask2()])await tasksawait tasks2
具体示例:
import asyncioimport time# 定义协程任务async def asyncTask1():
# 协程休眠
await asyncio.sleep(1)
print(time.strftime('%X'), 1)async def asyncTask2():
await asyncio.sleep(2)
print(time.strftime('%X'), 2)async def main():
task1 = asyncio.create_task(asyncTask1())
task2 = asyncio.create_task(asyncTask2())
tasks = asyncio.gather(asyncTask1(), asyncTask2())
tasks2 = asyncio.gather(*[asyncTask1(), asyncTask2()]) await tasks await tasks2 await task1 await task2
print(time.strftime('%X'), "start")
asyncio.run(main())
print(time.strftime('%X'), "end")
关于运行协程的方式,我们就了解到这啦!
-
珍惜当下珍惜眼前人的优美句子
1、如果有来生,我们是不是应该过好今生,如果有末日,我们是不是应该珍惜当下。2、你永远不知道,意外和明天哪个先到,所以好好珍惜当下,不该出手时别出手。3、春秋的喧哗,冬夏的温差...
句子查看全文>> -
女儿18岁生日祝福语
1、因为你的诞生,这一天注定与众不同。我激动的脸都红了,眼睛都直了,腿都软了,发短信时手都不听使唤了,只为对你说一句:18岁生日快乐!2、送你一张贺卡,愿你年年今日嘻唰唰;送你...
祝福语查看全文>> -
2022七夕节朋友圈文案简短
1、七夕情人节快乐!愿我俩的爱情能比牛郎织女更深,但不要像他们的两地相思!2、你工作我疲惫,你伤心我落泪,你心烦我无味。因此收到短信,一定在笑,轻启朱唇,浅露酒窝;读完短信,一...
说说查看全文>>
推荐
- 1Dr.Hztone+精华液好不好 Dr.Hztone+精华液值得入手吗496
- 2四季好词好句431
- 3忠心经典语录133
- 4别克行车记录仪怎么连接手机372
- 5excel卸妆油敏感肌能用吗 excel卸妆油怎么样123
- 6什么茶叶喝起来超级香458
- 7简短正能量语录八字338
- 8车辆旧车置换补贴多少?480