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