asyncio的事件循环如何知道等待资源何时准备就绪?

时间:2016-08-08 14:19:52

标签: python asynchronous python-asyncio

我正在学习用于异步编程的Python asyncio。我知道事件循环监视Future对象,直到它们准备就绪,然后恢复相应的协同程序,以便在发生await关键字的位置继续执行。

当你使用类似asyncio.sleep之类的东西时,这是非常容易理解的,因为睡眠功能知道需要多少时间,因此会知道事件循环,但依赖于网络的东西会发生什么(例如)等待时间未知的地方?

事件循环如何知道资源何时准备好或者从某个源收集数据需要多少时间?

1 个答案:

答案 0 :(得分:2)

  

事件循环如何知道资源何时准备好或从一些来源收集数据需要多少时间?

默认事件循环(基于SelectorEventLoop)使用selector模块跟踪要监视的所有资源,并在新数据准备好时收到通知。 BaseSelector.selectwhere the magic happens