【Python】协程

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/7/14 23:10
# @Author  : Shuranima
# @File    : asyncio单任务协程.py
# 协程的使用创建和单任务协程

import asyncio

async def repsonse(url):
    print(url)

if __name__ == '__main__':
    url = 'www.baidu.com'
    c = repsonse(url)                   #返回一个协程对象

    # #直接创建协程
    # loop = asyncio.get_event_loop()
    # loop.run_until_complete(c)

    # #使用task创建
    # loop = asyncio.get_event_loop()     #创建一个事件循环
    # task = loop.create_task(c)         #任务  就是讲协程对象进行封装 带有状态等
    # print(task)                         #>
    # loop.run_until_complete(task)       #注册并启动协程对象
    # print(task)                         # result=None>

    #使用future创建
    loop = asyncio.get_event_loop()     #创建一个事件循环
    task = asyncio.ensure_future(c)     #任务  就是讲协程对象进行封装 带有状态等
    print(task)                         #>
    loop.run_until_complete(task)       #注册并启动协程对象
    print(task)                         # result=None>
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/7/14 23:11
# @Author  : Shuranima
# @File    : asyncio多任务协程.py
# 使用多任务协程

import asyncio


async def repsonse(url):
    print(url)


if __name__ == '__main__':
    urls = ['www.baidu.com', 'www.google.com', 'www.hao123.com', 'www.yunchangkm.com']
    loop = asyncio.get_event_loop()
    tasks = []
    for url in urls:
        tasks.append(asyncio.ensure_future(repsonse(url)))
    loop.run_until_complete(asyncio.wait(tasks))

 

你可能感兴趣的:(【Python】协程)