Python异步----------await方法逻辑

主要功能

把当前协程暂停,把控制权交还给事件循环,并约定等某个Future/任务完成以后再从此处继续执行。

主要逻辑

1,调用一个asyncio版本的读操作,比如await resp.text()

2,事件循环会创建一个Future(一个将来会有结果的对象),把这个socket的fd(file descriptor文件描述符)注册到os的监听器里,将这个fd与Future进行绑定,关注可读事件,此时协程挂起,事件循环去跑其他已就绪的任务。

3,os一旦发现某个fd可读可写,就返回 哪个fd发生了什么。

4,事件循环根据绑定关系,找到当初登记的回调/future 尝试真正的recv()把数据读出来,把读到的数据future.set_result(data),这个future就完成。

5,future一旦完成,事件循环就把await这个future的协程访问就绪队列

6,下一轮调度,协程从await的地方继续往下跑

总结

登记 fd → OS 通知 → Future 完成 → 协程继续

相关推荐
weixin_468635294 天前
Pandas 速查笔记
笔记·pandas
Dxy12393102165 天前
DataFrame缺失值处理:完整指南与实战技巧
python·pandas·dataframe
kong79069286 天前
Python核心语法-Pandas读写csv和tsv文件
pandas
Dxy12393102166 天前
DataFrame时间序列操作:从基础到高级的时间数据处理指南
pandas
-To be number.wan8 天前
用 Pandas 分析自行车租赁数据:从时间序列到天气影响的完整实训
python·数据分析·pandas·数据可视化
Dxy12393102169 天前
DataFrame索引功能详解
pandas
没事偷着乐琅11 天前
二、Pandas 是啥 是数据库吗?
数据库·pandas
Flying pigs~~11 天前
Pandas绘图和Seaborn绘图
数据挖掘·数据分析·pandas·seaborn·python可视化
Dxy123931021612 天前
DataFrame数据操作能力深度解析:从基础到高级的完整指南
pandas
好家伙VCC13 天前
# 发散创新:用Python+Pandas构建高效BI数据清洗流水线在现代数据分析领域,**BI(商业智能)工具的核心竞
java·python·数据分析·pandas