我們先大致看看NodeJS提供了哪些和進程管理有關的API。這里并不逐一介紹每個API的使用方法,官方文檔已經做得很好了。
## Process
> **官方文檔:?**[](http://nodejs.org/api/process.html)[http://nodejs.org/api/process.html](http://nodejs.org/api/process.html)
任何一個進程都有啟動進程時使用的命令行參數,有標準輸入標準輸出,有運行權限,有運行環境和運行狀態。在NodeJS中,可以通過`process`對象感知和控制NodeJS自身進程的方方面面。另外需要注意的是,`process`不是內置模塊,而是一個全局對象,因此在任何地方都可以直接使用。
## Child Process
> **官方文檔:?**[](http://nodejs.org/api/child_process.html)[http://nodejs.org/api/child_process.html](http://nodejs.org/api/child_process.html)
使用`child_process`模塊可以創建和控制子進程。該模塊提供的API中最核心的是`.spawn`,其余API都是針對特定使用場景對它的進一步封裝,算是一種語法糖。
## Cluster
> **官方文檔:?**[](http://nodejs.org/api/cluster.html)[http://nodejs.org/api/cluster.html](http://nodejs.org/api/cluster.html)
`cluster`模塊是對`child_process`模塊的進一步封裝,專用于解決單進程NodeJS Web服務器無法充分利用多核CPU的問題。使用該模塊可以簡化多進程服務器程序的開發,讓每個核上運行一個工作進程,并統一通過主進程監聽端口和分發請求。