使用示例
创建协程:coroutine = func()
。
创建事件循环:loop = asyncio.get_event_loop()
。
创建task:task = loop.create_task(coroutine)
。将协程变成task。新建task的状态为pending。(可以将loop.create_task()和loop.ensure_future()视为同等作用。
启动task:loop.run_until_complete(task)
。把task加入循环,当完成后task状态从pending变为finished。
task执行完后绑定回调:add_done_callback
。
挂起协程:await
。
示例代码
import asyncio
import time
now = lambda: time.time()
async def do_some_work(x):
print("Waiting:",x)
await asyncio.sleep(x)
return "Done after {}s".format(x)
start = now()
# 创建协程
coroutine1 = do_some_work(1)
coroutine2 = do_some_work(2)
coroutine3 = do_some_work(4)
# 创建事件循环
loop = asyncio.get_event_loop()
# 创建任务
tasks = [
asyncio.ensure_futu