nodejs架构内部有两个事件循环吗?
在I/O请求上,节点将请求排队到libeio,后者又通过使用libev的事件通知数据的可用性,最后这些事件是由v8事件循环使用回调来处理的吗?
基本上,libev和libeio如何集成在nodejs架构中?
有没有可用于提供nodejs内部架构清晰图片的文档?
Node.js通过将基于事件的模型放在其核心,使用事件循环而不是线程来解决"每个连接一个线程问题".所有昂贵的I/O操作总是与启动的操作完成时执行的回调异步执行.
如果任何操作发生的观察由epoll()等多路复用机制处理.
我的问题现在是:
为什么在使用阻塞Systemcalls select/epoll/kqueue时NodeJS阻塞?
或者根本不是NodeJS Single Threaded,所以需要第二个Thread
来观察select/epoll/kqueue的所有I/O操作?