#!/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) #<Task pending coro=<repsonse() running at G:/Shura/Python3/协程/asyncio1.py:3>>
# loop.run_until_complete(task) #注册并启动协程对象
# print(task) #<Task finished coro=<repsonse() done, defined at G:/Shura/Python3/协程/asyncio1.py:3> result=None>
#使用future创建
loop = asyncio.get_event_loop() #创建一个事件循环
task = asyncio.ensure_future(c) #任务 就是讲协程对象进行封装 带有状态等
print(task) #<Task pending coro=<repsonse() running at G:/Shura/Python3/协程/asyncio1.py:3>>
loop.run_until_complete(task) #注册并启动协程对象
print(task) #<Task finished coro=<repsonse() done, defined at G:/Shura/Python3/协程/asyncio1.py:3> 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))