我试图了解Gevent / Greenlet选择下一个greenlet的方式。线程使用OS Scheduler。 Go Runtime使用2个分层队列。
默认情况下,Gevent使用libevent进行测试。 但是如果很多人准备好了,那么libevent如何选择下一个greenlet?
是随机的吗?
我已经阅读了他们的文档,并对源代码有所了解。还是不知道。
更新:文本已更改为识别Gevent使用libevent。这个问题仍然适用于libevent。
答案 0 :(得分:0)
它的底层调度模型是libevent中的事件循环,它使用事件库来监视不同的事件,并对它们作出反应,然后根据我的想法,它将采取greenlets做一些与信号量有关的函数,然后将它发送到libevent上。