美文网首页
Python使用async/await极简例子

Python使用async/await极简例子

作者: 赤色要塞满了 | 来源:发表于2021-03-26 12:01 被阅读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,可自行研究。

    相关文章

      网友评论

          本文标题:Python使用async/await极简例子

          本文链接:https://www.haomeiwen.com/subject/jkjjhltx.html