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 完成 → 协程继续

相关推荐
百年੭ ᐕ)੭*⁾⁾15 小时前
DataFrame存入mysql以及读取操作
数据库·mysql·numpy·pandas·ipython
李昊哲小课1 天前
国际足球比赛数据集分析报告(1872-2025)
信息可视化·数据挖掘·数据分析·pandas·matplotlib·pyecharts·seaborn
howard20052 天前
Pandas加载Avro文件
pandas·avro
懒羊羊不懒@3 天前
Pandas库详细介绍
pandas
一晌小贪欢3 天前
PyQt5 + Pandas 打造常见的表格(Excel/CSV)读取与处理工具
python·qt·excel·pandas·python办公·excel处理
阿钱真强道4 天前
11 数据预处理-数据集成与重复数据处理
pandas·数据清洗·数据集成·merge·数据合并·重复数据处理·drop_duplicates
阿钱真强道4 天前
08 Python 数据分析:学生画像匹配与相似度计算
python·机器学习·数据分析·pandas·推荐系统·相似度计算·文本分析
阿钱真强道4 天前
06 Python 数据分析入门:集中趋势与离散程度
python·数据挖掘·数据分析·pandas·可视化·python入门·统计学
XDHCOM4 天前
Pandas怎么连接外部数据库导入数据,步骤和注意点简单讲讲
数据库·pandas
howard20054 天前
Pandas读取包含多个工作表的Excel文件
excel·pandas