多任务异步协程asyncio
特殊函数:
- 就是async关键字修饰的一个函数的定义
- 特殊之处:
- 特殊函数被调用后会返回一个协程对象
- 特殊函数调用后内部的程序语句没有被立即执行
- 协程
- 对象。协程==特殊的函数。协程表示的就是一组特定的操作。
- 任务对象
- 高级的协程(对协程的进一步的封装)
- 任务对象==协程==特殊的函数
- 任务对象==特殊的函数
- 绑定回调:
- task.add_done_callback(task)
- 参数task:当前回调函数对应的任务对象
- task.result():返回的就是任务对象对应的特殊函数的返回值
- 事件循环对象
- 创建事件循环对象
- 将任务对象注册到该对象中并且开启该对象
- 作用:loop可以将其内部注册的所有的任务对象进行异步执行
- 挂起:就是交出cpu的使用权。
await:被用做在特殊函数的内部,在被阻塞的时候
wait:给每一个任务赋予一个可被挂起的权限
#【重点】在特殊函数内部的实现中,不可以出现不支持异步的模块(例如time,requests)代码,如果出现了,则会中断整个的异步效果!!!
asyncio的使用
import asyncio
import time
from time import sleep
# 特殊函数
async def get_request(url):
print('正在下载: ',url)