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)、王者4)、风云变5)、威仕球6)、威扬7)、舞动青春俱乐部8)、撞击俱乐部9)、...
生活查看全文>> -
雅阁18款和21款有啥区别
雅阁是本田旗下的一款中型汽车,雅阁18款和21款的区别主要集中在汽车外观和内饰配置方面,比如车身尺寸、车身的颜色等,在其它方面没有很大的区别。在车身尺寸方面,雅阁21款的长宽高...
问答查看全文>>
推荐
- 1史迪仔手机壳哪个牌子好 史迪仔手机壳十大品牌排行榜110
- 22022年经典服务员语录 最火语录325
- 3桥头跳车标志是什么400
- 4汽车上option是什么意思?363
- 5汽车地毯脚垫怎么速干?211
- 6聪米洗碗机值得买吗 聪米洗碗机怎么样135
- 72023元宵节猜灯谜文案 元宵节暖心走心文案188
- 8笃定是什么意思243