node.js multi-process
node.js本身並不支援multi-process,但是有其他方式可以達成。簡單來說,就是利用node.js的不會阻塞IO的特性,然後去執行終端機(terminal)的command line,然建立監聽事件,就可以達成multi-process。以有人實作出來,使用方法如同browser的Worker,可以參考node.js的Worker。
以下是一個簡單實作原理的範例:
main.js
var spawn = require('child_process').spawn, child_process = spawn('node', ['child.js']); child_process.stdout.on('data', function (data) { console.log('stdout: ' + data); }); setInterval(function(){ child_process.stdin.write("test"); },199);
child.js
//當程式執行完畢,不關閉此程序 process.stdin.resume(); process.stdin.setEncoding('utf8'); process.stdin.on('data', function (chunk) { console.log('data: ' + chunk); });
如果想要理解更多,請參考process和child_process的相關event,或者其他人實作的source code。