首先我来描述一下我对于Node.js 基于事件驱动的 异步 I/O 的理解:Node是单线程的,所以代码执行是重上到下的一种线性执行规律,但是碰到异步代码的时候, Node把异步执行的代码放到一个执行栈中(事件队列),并且让该代码块在执行栈里面执行完以后告诉Node"我执行完了",在这之后就会执行该异步代码对应的回调函数。在node把这个异步的代码丢到执行栈的同事,它并不会阻塞,而是继续执行下面的代码。那么我的问题来了,因为js本身就是单线程的,node亦是如此。就像上面所描述的那样,node不会阻塞,那么到底是谁来执行“执行栈”中的代码的呢?
对于我的理解如果有错的地方还请大家纠正