三大特点
单线程
非阻塞I/O
事件驱动
1. 单线程
Node 不为买个用户连接创建一个 线程,而是只通过一个 线程
这样做的好处:系统就不需要有创建线程,和销毁的时间的开销,是性能更好
缺点:单线程的阻塞的问题。(一个崩溃了 ,其他的都崩溃了)
2.非阻塞 I/O
I/O阻塞了代码的执行,node就是非阻塞的i/o,在执行完访问数据库的代码之后,将立即执行后面 的代码,而不是等待,而是将处理数据的过程放在回调函数中,提高了效率
为了处理异步的I/O线程就必须要有事件的循环,不断的检查有没有未处理的事件,依次的予以处理
需要注意的是这里的
与阻塞模式的对比
阻塞模式是一个线程只能处理一项任务。非阻塞 模式就是一直持续的这样的计算,使这个线程的利用率是100%
3. 事件驱动
node 底层是用一个线程处理了多个事件的处理的使命
事件的机制:
指向函数1的任务时候,函数2的回调完成了。都以事件的方式加入事件环,等待调度。
需要注意的 是这里满函数2的回调的执行的优先级更高一些。
以上三个特点都是环环相扣的