Python3-异步协程

 

import asyncio
import time
async def get_request(url):
    print('正在请求的url: ',url)
    await asyncio.sleep(2) #支持异步模块代码
    print('请求结束: ',url)
    return 'hello'

urls = [
    'www.1.com',
    'www.2.com',
    'www.3.com'
]
if __name__ == "__main__":
    start = time.time()
    tasks = [] #多任务列表
    #1.创建协程对象
    for url in urls:
        #c就是一个协程对象
        c = get_request(url)
        #创建任务对象,任务对象就是对协程对象进一步封装
        task = asyncio.ensure_future(c)
        tasks.append(task)
    #3.创建事件循环对象
    loop = asyncio.get_event_loop()
    #将任务对象注册到事件循环中且开启事件循环,必须使用wait方法对tasks进行封装才可
    loop.run_until_complete(asyncio.wait(tasks))
    print('总耗时: ',time.time()-start)

 

posted on 2022-11-13 13:58  Colin88  阅读(82)  评论(0编辑  收藏  举报