目录
1. 协程理论与实验案例
1.1 基础理论
程序处于阻塞状态的情形包含以下几个方面:
- input():等待用户输入
- requests.get():网络请求返回数据之前
- 当程序处理IO操作时,线程都处于阻塞状态
- time.sleep():处于阻塞状态
协程的逻辑是当程序遇见IO操作时,可以选择性的切换到其他任务上;协程在微观上任务的切换,切换条件一般就是IO操作;在宏观上,我们看到的是多个任务都是一起执行的;上方的一切都是在在单线程的条件下,充分的利用单线程的资源。
要点梳理:
- 函数被asyn修饰,函数被调用时,它不会被立即执行;该函数被调用后会返回一个协程对象。
- 创建一个协程对象:构建一个asyn修饰的函数,然后调用该函数返回的就是一个协程对象
- 任务对象是一个高级的协程对象,
import