zoukankan      html  css  js  c++  java
  • aiohttp/asyncio 小例子和解释

    #!/usr/bin/env python  
    # encoding: utf-8  
    import aiohttp
    import asyncio
    import time
    # 通过async def定义的函数是原生的协程对象
    async  def fetch_async():
        conn=aiohttp.TCPConnector(verify_ssl=Flase)
        async with aiohttp.ClientSession(connector=conn) as session:
            async with session.get("http://www.baidu.com") as r:
               data=await r.text()   #和request的区别requests的方法是text,await就是协同的执行那些同步的任务,直到完成。
            return data[:10]
    
    
    start=time.time()
    #每个线程有一个事件循环,主线程调用asyncio.get_event_loop时会创建事件循环
    event_loop=asyncio.get_event_loop()
    tasks=[fetch_async() for i in range(10)]
    #run_until_complete方法,事件循环会安排协同程序的执行,asyncio.gather可以按顺序搜集异步任务执行的结果,
    results=event_loop.run_until_complete(asyncio.gather(*tasks))
    
    if __name__ == '__main__':
            for num,result in zip(list(range(10)),results):
                print(f'fetch({num}) = {result}')
    

      

  • 相关阅读:
    8.16集训
    8.15集训
    Educational Codeforces Round 97 (Rated for Div. 2)
    Codeforces Round #679 (Div. 2, based on Technocup 2021 Elimination Round 1)
    尺取法
    Codeforces Round #677 (Div. 3)
    单调队列
    dfs序
    离散化
    [kuangbin带你飞]专题七 线段树
  • 原文地址:https://www.cnblogs.com/c-x-a/p/9077701.html
Copyright © 2011-2022 走看看