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

相关推荐
小白学大数据2 天前
Python爬虫实现无限滚动页面的自动点击与内容抓取
开发语言·爬虫·python·pandas
LilySesy4 天前
【SAP-MOM项目】二、接口对接(中)
开发语言·python·pandas·restful·sap·abap
qq_381454999 天前
Python Pandas完全指南:从核心数据结构到实战操作
pandas
TUTO_TUTO10 天前
【python-词汇指标提取工具开发】自学笔记(1)-后端程序
人工智能·python·pandas·visual studio code
葱明撅腚10 天前
shapely空间数据分析
python·pandas·gis·shapely
忘忧记11 天前
pandas基础三
pandas
叫我:松哥13 天前
基于scrapy的网易云音乐数据采集与分析设计实现
python·信息可视化·数据分析·beautifulsoup·numpy·pandas
测试摆渡媛13 天前
Excel模板填充工具(工具&脚本分享)
python·数据挖掘·pandas
_Soy_Milk13 天前
【算法工程师】—— Python 数据分析
python·数据分析·numpy·pandas·matplotlib
Data-Miner14 天前
类似Pandas AI的几个数据分析处理智能体介绍
人工智能·数据分析·pandas