Node.js事件循环(Event Loop)和线程池详解
Node的“事件循环”是它能够处理大并发、高吞吐量的核心。这是最神奇的地方,据此Node.js基本上可以理解成“单线程”,同时还允许在后台处理任意的操作。JavaScript的一个主要用途是与DOM交互,所以使用基于事件的API是很自然的。一般通过事件监听实现,一旦事件被检测到则调用相应的回调函数。其实这就是Node.js事件循环的基本工作原理。其中之一是libuv,神奇的处理异步事件队列和执行的库。在这种情况下,Node.JS必须能在操作时将线程锁定一段时间,以便它可以继续执行事件循环而不会被阻塞。通过创建EventEmitter,可简化与事件循环的交互。都是经过深思熟虑的。另一篇文章会讨论事件循环与系统内核的交互,并展现NodeJS异步运行的魔力。
用户评论