2017-02-19 10 views
1

私はchild_processライブラリを含むnode.jsプロジェクトを読んでいます。ノードの子プロセスとは何ですか?

正確には子プロセスですか?これはjavascriptウェブワーカーに似ていますか?

子プロセスのプロセスを通常単に実行するのではなく、どのような利点がありますか?私はこれを仮定すれば、メモリへのアクセスを増やすことができます。

答えて

3

Linuxでターミナルを実行し(bashプロセス)、コマンドを実行すると、たとえばls -lh /usrと入力すると、端末はstdoutのすべてのファイルを現在のディレクトリに書き込む子プロセスlsを開始します。ここで端末の代わりにnode.jsが親プロセスとして使用されています。

const spawn = require('child_process').spawn; 
const ls = spawn('ls', ['-lh', '/usr']); 

ls.stdout.on('data', (data) => { 
    console.log(`stdout: ${data}`); 
}); 

ls.stderr.on('data', (data) => { 
    console.log(`stderr: ${data}`); 
}); 

ls.on('close', (code) => { 
    console.log(`child process exited with code ${code}`); 
}); 

この同様のJavaScriptのウェブワーカーは、次のとおりです。あなたは、このような子lsプロセスを開始/生むことができますか?

ウェブワーカーに似ているかもしれませんが、ウェブワーカーがブラウザでどのように実装されているかはわかりません。 AFAIK nodeには、Web Workers APIが用意されていません。しかし、あなたの子プロセスがnode.jsプロセスである場合、あなたはwebworkerに類似したこの子プロセスを見ることができます。このcluster APIをご覧ください。

関連する問題