libevent如何选择下一个Gevent greenlet来运行?

时间:2017-09-23 21:52:48

标签: python concurrency gevent cpython greenlets

我试图了解Gevent / Greenlet选择下一个greenlet的方式。线程使用OS Scheduler。 Go Runtime使用2个分层队列。

默认情况下,Gevent使用libevent进行测试。 但是如果很多人准备好了,那么libevent如何选择下一个greenlet?

是随机的吗?

我已经阅读了他们的文档,并对源代码有所了解。还是不知道。

更新:文本已更改为识别Gevent使用libevent。这个问题仍然适用于libevent。

1 个答案:

答案 0 :(得分:0)

它的底层调度模型是libevent中的事件循环,它使用事件库来监视不同的事件,并对它们作出反应,然后根据我的想法,它将采取greenlets做一些与信号量有关的函数,然后将它发送到libevent上。