nodejs事件轮询和事件环,这是我的理解,麻烦大家帮我看看哪里有不妥或者说错的地方,帮我纠正一下,谢谢
发布于 9 年前 作者 tankdever 3994 次浏览 最后一次编辑是 8 年前 来自 问答

1、有两个非阻塞io操作(本身携带回调),但是执行顺序并不是一定按照代码编写顺序执行的,所有事件都会被压入事件队列,起一个线程去撑起事件环读取事件,当读取操作是阻塞的,那么nodejs会将阻塞操作交给后台的一个线程去执行(nodejs去执行下一个事件),把回调压入事件队列,但是压入队列的顺序不一定,要看执行的快慢,这样就实现了一个事件轮询; 2、如果阻塞io操作本身没有携带回调,那么nodejs还是会交给线程池的一个线程去处理,为这个操作加上自己的“回调”,当执行完之后,再执行回调告诉事件环线程可以执行下一个事件了,但没有执行完回调之前是不会读取事件的,

回到顶部