Python使用async/await极简例子

2021-03-26  本文已影响0人  赤色要塞满了

很多协程教程都用asyncio.sleep()来模拟耗时的IO操作,但是却没说真实的应用怎么写。

import asyncio
import time

# 一个真实的耗时操作,可以比如去爬取网页
def mysleep(x):
    time.sleep(x)

async def mytask(task_name):
    print(task_name, 'start')
    # r = asyncio.sleep(1) # 好多教程的做法
    r = await asyncio.get_event_loop().run_in_executor(None, mysleep, 3)
    print(task_name, 'end')

loop = asyncio.get_event_loop()
tasks = [mytask('task1'), mytask('task2')]
loop.run_until_complete(asyncio.wait(tasks))
loop.close()

运行结果很简单:

task1 start
task2 start
task1 end
task2 end

还有什么ensure_futurecreate_task,可自行研究。

上一篇下一篇

猜你喜欢

热点阅读