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(ti.strfti('%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 ti# 定义协程任务async def asyncTask1():
# 协程休眠
await asyncio.sleep(1)
print(ti.strfti('%X'), 1)async def asyncTask2():
await asyncio.sleep(2)
print(ti.strfti('%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(ti.strfti('%X'), "start")
asyncio.run(main())
print(ti.strfti('%X'), "end")
关于运行协程的方式,我们就了解到这啦!
生活小妙招
- 杭州市小客车总量调控管理暂行规定
- 个人所得税退税的条件和标准 下载个人所得税
- 江苏省南通市通州区天气 江苏省南通通州区天气
- 夫妻有按揭的房子离婚怎么办 夫妻有按揭的房子
- 山东省青岛市市北区天气 山东省青岛市市北区天
- 什么财产离婚后不用分割 什么财产离婚后不用分
- 工伤认定必须满足三个条件 工伤认定申请必须满
- 家暴出轨不受离婚冷静期限制 家暴不适用离婚冷
- 武夷山一周天气预报 武夷山一周天气预报15天准
- 怎么与孩子沟通最有效方法 怎么与孩子沟通的技
- 女方提出离婚财产怎么分割 女方提出离婚财产怎
- 华东五市天气预报 华东五市的天气
- 深圳车辆违章记录查询 深圳车辆违章记录查询
- 老公铁了心要离婚还能挽回吗 老公铁了心离婚的
- 怎么计算工伤十级的赔偿金 工伤十级赔偿计算公
- 武汉天气预报15天气报 武汉天气预报15天