美文网首页
Python 中的异步模式

Python 中的异步模式

作者: Devest | 来源:发表于2018-11-13 00:26 被阅读0次

    异步模式

    为什么需要异步模式?

      在程序的执行过程当中,常常会遇到情况,就是需要等待,例如网络返回需要等待,这个时候本地的程序就处在没事可做的状态。但是实际上这个时候本地程序还是可以继续下载别的链接的。但是由于程序设置的原因,导致程序阻塞了。所以需要一个异步模式。
      在实际的生活当中也常常会遇到这种情况,比如说我们去饭馆吃饭,在点菜的时候,可能会点了多道菜,上菜的时候不一定是按照我们点菜的顺序来上菜,而是哪道菜做好了,先上哪道菜,我们来吃哪道菜。否则的话,我们的生活实在是太痛苦了。
      由此可见,在多个对象通讯配合的情况下,异步模式是一个很常见的模式。需要我们重点关注一下。

    Python 中有几种异步模式?

    多进程

    多线程

    coroutine/yield from

    async/await

    为什么要选择 async/await 的模式?

    import aiohttp
    import asyncio
    
    async def fetch(session, url):
        async with session.get(url) as response:
            html = await response.text()
            print(html)
    
    async main():
        async with aiohttp.ClientSession() as session:
            await fetch(session, 'http://baidu.com')
            await fetch(session, 'http://sina.com')
            await fetch(session, 'http://sohu.com')   
    
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())
    

    相关文章

      网友评论

          本文标题:Python 中的异步模式

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