Heim  >  Artikel  >  Web-Frontend  >  node.js unterhaltsame Prozessinstanz

node.js unterhaltsame Prozessinstanz

小云云
小云云Original
2018-03-17 16:39:121365Durchsuche


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(&#39;os&#39;).cpus();for(let i=0;i<cpus.length;i++){    fork(&#39;./work.js&#39;);
}

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.
node.js unterhaltsame ProzessinstanzDie von Fork kopierten Prozesse sind unabhängig. Dieser Prozess verfügt über eine unabhängige und brandneue V8-Instanz. Forking-Prozesse sind teuer.

9.2.1 Unterprozess erstellen

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(&#39;child_process&#39;);
cp.spawn(&#39;node&#39;,[&#39;worker.js&#39;]);//没有回调函数cp.exec(&#39;node worker.js&#39;,function (err,stdout,stderr) {});
cp.execFile(&#39;worker.js&#39;,function (err,stdout,stderr) {});
cp.fork(&#39;./worker.js&#39;);

9.2.2 Kommunikation zwischen Prozessen

parent.js:

let cp=require(&#39;child_process&#39;);let n=cp.fork(__dirname+ &#39;./worker.js&#39;);
n.on(&#39;message&#39;,function (m) {});
n.send({hello:&#39;world&#39;});

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn