ホームページ  >  記事  >  ウェブフロントエンド  >  node.jsの楽しいプロセスインスタンス

node.jsの楽しいプロセスインスタンス

小云云
小云云オリジナル
2018-03-17 16:39:121364ブラウズ


この記事では主に、node.js の再生プロセスの例を紹介します。Node は、次のように、classic サンプル コードを worker.js ファイルとして保存します。

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');

次のコードをマスターとして保存します。 js を作成し、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;);
}

*nix システムで ps aux|grep worker.js を介してプロセス数を確認します。
これはマスター ワーカー モードであり、マスター スレーブ モードとも呼ばれます。
node.jsの楽しいプロセスインスタンスフォークによってコピーされたプロセスはすべて独立しています。このプロセスには、独立した新しい V8 インスタンスがあります。プロセスのフォークにはコストがかかります。

9.2.1 サブプロセスの作成

新しいバージョンのノードのサブプロセスには、同期サブプロセスと非同期サブプロセスもあります
。 - spawn(): 子プロセスを開始します
- exec(): 子プロセスを開始します。 spawn との違いは、コールバック関数があることです
- execFile(): 子プロセスを開始して実行可能ファイルを実行します
- fork(): spawn と同様に、ノードのサブプロセスを作成するには js ファイルを指定するだけでよいという点が異なります。spawn と exec および execFile の違いは、後者の 2 つの作成時に指定できることです。 timeout 属性を使用してタイムアウトを設定すると、後で子プロセスを強制終了できます。

exec と execFile の違いは、exec は既存のコマンドの実行に適しており、execFile はファイルの実行に適していることです。

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 プロセス間通信

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;});

関連推奨事項:

PHP プロセス間通信の詳細な説明

以上がnode.jsの楽しいプロセスインスタンスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。