我想知道nodejs的事件循环(无论它是什么底层实现,可能是v8,libuv,libev)如何循环而不会耗尽CPU。如下面的代码示例所示,插入一个睡眠调用以“释放”CPU并防止while循环耗尽CPU。既然有人已经指出事实并非如此,那么我想知道nodejs(或其底层库)中出于这种目的采用了什么机制?
欢迎链接到源代码的相关部分。感谢。
我在询问nodejs内部:我想知道nodejs事件循环中的滴答之间是否有任何休眠时间。
换句话说,我假设nodejs内部结构看起来像下面的代码,我想知道sometime
的值是什么,如果有的话。
while(true) {
for(event in queue) handleEvent(event);
sleep(sometime);
}
我做了这样的假设,因为我认为必须存在某种睡眠,以便while循环不会耗尽CPU。