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