Node.js 进程与线程

进程:计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。比如打开音乐播放器,浏览器,系统把音乐播放器,浏览器程序加载到内存中,我们称执行中的程序叫做进程。

多进程:启动多个进程,多个进程可以一块执行多个任务。CPU 使用调度算法快速进行切换。

线程:进程中一个相对独立的,可调度的执行单元,与同属一个进程的线程共享进程的资源。

多线程:启动一个进程,在一个进程内启动多个线程,这样,多个线程也可以一块执行多个任务。

JavaScript 是单线程的,Node.js 也是单线程的,单线程只是针对主进程,I/O 操作系统底层多线程调度。所以我们说 Node.js 是单线程的,并不是说 Node.js 做所有事情都是单线程,像 I/O 操作是交给操作系统底层去做的。单线程并不是单进程,Node.js 通过 cluster 集群来利用多核 CPU 的能力。