• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

asyncio future 和 task

开发技术 开发技术 4小时前 1次浏览

asyncio future 和 task

future 是一个协程等待对象, task 任务等待是基于这个等待对象的,task 对象继承future,
await 开启 future 对象后 当前协程会陷入等待,执行权会让出去, 当给future对象 set_result
赋值后 future才会被唤醒,task 对象继承了 future对象, 遇到io堵塞的时候就将执行权让出去,
当io结束,系统给set_result 赋值的时候,task对象就被唤醒, task是基于future 上的,
可以通过io完成事件自动给future 赋值,

个人猜测,task 遇到 io 堵塞时 会先发起执行操作,如爬虫,遇到发请求 io 时候会给系统一个发起网络请求的指令,然后给io堵塞添加一个回调任务,这个回调任务负责在io事件完成后自动给set_result 赋值,唤醒task 任务


程序员灯塔
转载请注明原文链接:asyncio future 和 task
喜欢 (0)