📅  最后修改于: 2023-12-03 14:44:44.277000             🧑  作者: Mango
NodeJS 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它采用了事件驱动的非阻塞 I/O 模型,使得在处理高并发、大数据量、高 I/O 的场景下表现更加出色。
事件循环(Event Loop)是 NodeJS 中的一个核心概念,其本质是一个循环结构,用于监听事件并执行回调。事件循环会不断地监听事件队列中是否存在事件,如果存在,则取出第一个事件,并执行该事件对应的回调函数,然后再次检查事件队列。
NodeJS 的非阻塞和异步并不是相同的概念,但它们是密切相关的。
非阻塞是指 I/O 操作执行期间,线程不会停止等待 I/O 操作的结果,而是会继续执行下一条语句。
异步是指 I/O 操作不会阻塞后续代码的执行,而是采用回调函数的形式,等到 I/O 操作完成后再调用回调函数。
NodeJS 的非阻塞事件循环模型主要由以下几个部分组成:
下面是一个示意图:
NodeJS 的非阻塞事件循环模型是其高效处理大量 I/O 操作的关键所在。了解 NodeJS 事件循环的原理,对于编写高效的 NodeJS 程序非常重要。