兒童過程

當人們想要使用不同的初始化和關注點獨立執行程序時,子程序是一種可行的方法。就像群集中的叉子一樣,child_process 在其執行緒中執行,但與叉子不同,它有一種與其父節點通訊的方式。

通訊是雙向的,因此父母和孩子可以收聽訊息併傳送訊息。

家長 (../ parent.js)

var child_process = require('child_process');
console.log('[Parent]', 'initalize');

var child1 = child_process.fork(__dirname + '/child');
child1.on('message', function(msg) { 
    console.log('[Parent]', 'Answer from child: ', msg); 
});

// one can send as many messages as one want
child1.send('Hello'); // Hello to you too :)
child1.send('Hello'); // Hello to you too :)

// one can also have multiple children
var child2 = child_process.fork(__dirname + '/child');

孩子 (../child.js)

// here would one initialize this child
// this will be executed only once
console.log('[Child]', 'initalize');

// here one listens for new tasks from the parent
process.on('message', function(messageFromParent) {
    
    //do some intense work here
    console.log('[Child]', 'Child doing some intense work');

    if(messageFromParent == 'Hello') process.send('Hello to you too :)');
    else process.send('what?');
    
})

訊息旁邊可以收聽許多事件,錯誤已連線斷開連線

啟動子程序具有與之相關的特定成本。人們希望儘可能少地產卵。