Node

作者: shaokang 时间: February 23, 2022字数:531

NodeJs 定义

Node.js 是一个开源与跨平台的 JavaScript 运行时环境

在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),利用事件驱动、非阻塞和异步输入输出模型等技术提高性能

可以理解为 Node.js 就是一个服务器端的、非阻塞式 I/O 的、事件驱动的 JavaScript 运行环境。

非阻塞 I/O

I/O 操作不会造成任何的阻塞,完成后以时间的形式通知执行操作。

例如在执行了访问数据库的代码之后,将立即转而执行其后面的代码,把数据库返回结果的处理代码放在回调函数中,从而提高了程序的执行效率。

事件驱动

事件驱动就是执行新的请求时,将其压入事件队列中,然后循环检测队列中的事件状态变化。如果检测到有状态变化的事件,那么就执行该事件对应的处理代码(一般都是回调函数)。

NodeJs 优缺点

优点:

  • 处理高并发场景性能更佳
  • 适合 I/O 密集型应用,值的是应用在运行极限时,CPU 占用率仍然比较低,大部分时间是在做 I/O 硬盘内存读写操作

因为 Nodejs 是单线程,带来的缺点有:

  • 不适合 CPU 密集型应用
  • 只支持单核 CPU,不能充分利用 CPU
  • 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃