Heim > Artikel > Web-Frontend > node.js unterhaltsame Prozessinstanz
Dieser Artikel stellt hauptsächlich Beispiele für den Abspielprozess von node.js vor. Anschließend speichern wir den klassischen Beispielcode als worker.js-Datei:
let http=require('http'); http.createServer(function (req,res) { res.writeHead(200,{'Content-Type':"text/plain"}); res.end('hello world') }).listen(Math.round((1+Math.random())*1000),'127.0.0.1');
Speichern Sie den folgenden Code als master.js und starten Sie ihn über node master.js:
let fork=require('child_process').fork; let cpus=require('os').cpus();for(let i=0;i<cpus.length;i++){ fork('./work.js'); }
Zeigen Sie die Anzahl der Prozesse über ps aux|grep worker.js unter *nix-Systemen an .
Dies ist der Master-Worker-Modus, auch bekannt als Master-Slave-Modus.
Die von Fork kopierten Prozesse sind unabhängig. Dieser Prozess verfügt über eine unabhängige und brandneue V8-Instanz. Forking-Prozesse sind teuer.
Der Unterprozess in der neuen Version des Knotens verfügt auch über einen synchronen Unterprozess und einen asynchronen Unterprozess. Dies bezieht sich auf den asynchronen Unterprozess -Prozess
- spawn(): einen untergeordneten Prozess starten
- exec(): Starten Sie einen untergeordneten Prozess. Der Unterschied zu spawn besteht darin, dass er eine Rückruffunktion hat
- execFile(): Starten Sie einen untergeordneten Prozess, um eine ausführbare Datei auszuführen
- fork(): Ähnlich wie bei spawn besteht der Unterschied darin, dass nur die js-Datei angegeben werden muss, um einen Knotenunterprozess zu erstellen
Der Unterschied zwischen spawn und exec und execFile besteht darin, dass das Timeout-Attribut angegeben werden kann Wenn die letzten beiden erstellt werden, um die Zeitüberschreitungszeit festzulegen, kann der untergeordnete Prozess nach Ablauf der Zeit beendet werden.
Der Unterschied zwischen exec und execFile besteht darin, dass exec zum Ausführen vorhandener Befehle und execFile zum Ausführen von Dateien geeignet ist.
let cp=require('child_process'); cp.spawn('node',['worker.js']);//没有回调函数cp.exec('node worker.js',function (err,stdout,stderr) {}); cp.execFile('worker.js',function (err,stdout,stderr) {}); cp.fork('./worker.js');
parent.js:
let cp=require('child_process');let n=cp.fork(__dirname+ './worker.js'); n.on('message',function (m) {}); n.send({hello:'world'});
Verwandte Empfehlungen:
PHP inter- Prozesskommunikation Ausführliche Erklärung
Das obige ist der detaillierte Inhalt vonnode.js unterhaltsame Prozessinstanz. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!