Nodejs的运行原理-科普篇 (8)

Nodejs的运行原理-科普篇

Node.js的单线程并不是真正的单线程只是开启了单个线程进行业务处理(cpu的运算),同时开启了其他线程专门处理I/O。当一个指令到达主线程主线程发现有I/O之后直接把这个事件传给I/O线程不会等待I/O结束后再去处理下面的业务而是拿到一个状态后立即往下走这就是单线程”、“异步I/O”。
I/O操作完之后呢?Node.jsI/O 处理完之后会有一个回调事件这个事件会放在一个事件处理队列里头在进程启动时node会创建一个类似于While(true)的循环它的每一次轮询都会去查看是否有事件需要处理是否有事件关联的回调函数需要处理如果有就处理然后加入下一个轮询如果没有就退出进程这就是所谓的事件驱动”。这也从Node的角度解释了什么是事件驱动”。
node.js事件主要来源于网络请求文件I/O根据事件的不同对观察者进行了分类有文件I/O观察者网络I/O观察者事件驱动是一个典型的生产者/消费者模型请求到达观察者那里事件循环从观察者进行消费主线程就可以马不停蹄的只关注业务不用再去进行I/O等待

 

优点

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpwpjf.html