nodejsのマルチプロセス管理モジュールchild_process


ちどり_processはNode.jsの一�であり、非常に重要な模�Kであり、通�^はF�で建多�M程であり、多核を利用して、Y源を计算し、各サブモジュールのプロセスを管理するのに便利である.
  Node.js 0.8のchild_process模�Kは四�を提供しています.建子�M程の函を担负しています.eはspawn、exec、execFile、forkです.その中でもspawnは最も原始的で、建子�M程の函で、他の三�はすべて�spawnの违う程度の封�bです.spawnは指定されたプログラムを実行することしかできません.また、敵盤はリストの中で出します.また、execvp系では、y函を担します.execは直接に�行�sの命令を行うことができます.
次のspawnとexecの違いを見ます.

  
  
  
  
  1. child = child_process.spawn('ls', ['-lh''/usr']); 
  2. child.stdout.setEncoding('utf8'); 
  3. child.stdout.on('data'function(data) { 
  4.   console.log(data); 
  5. }); 

  
  
  
  
  1. child_process.exec('ls -lh /usr'function(err, stdout, stderr) { 
  2.   console.log(stdout); 
  3. }); 
execFileでは、cspawnの�デ�も必要です.指定された打ちぐも必要です.しかし、1�を受け入れることができます.
fork函では、例えばfork('.child.js')と、spawn(node'、'.child.js')と、対比して、spawn('.child.js')と、c Me Jのspawnとは違って、forkで、父�M程で直接に親子の通信を成立させます.

  
  
  
  
  1. var n = child_process.fork('./child.js'); 
  2. n.on('message'function(m) { 
  3.   console.log('PARENT got message:', m); 
  4. }); 
  5. n.send({ hello: 'world' }); 
child.jsの内容:

  
  
  
  
  1. process.on('message'function(m) { 
  2.   console.log('CHILD got message:', m); 
  3. }); 
  4. process.send({ foo: 'bar' }); 
 
このうち父�M程、{正k函でだが、@取一�戻り値、�子�M程の文柄、通�^send函、卵l送情報、on(‘message’)�Oで返した情報、子�M程通�^ο笙しゅっ�の方法は、c父�M程通信です.
fork函で洗浄します.つまり、JavaScript代�aしかないです.もしあなたが好きなら、CoffeeScriptを使ってもいいです.{用の.一�、蔚姆椒ㄊ前洪水�a、JavaScriptまでは更に�行していますが、とても不便で、あります.N�法がありますか?答えはいいです.spawn函に戻ります.spawn函�党はcommand、argsの外で、1件のoptionsを受け入れます.親子で、M程の距離でIPCパイプを作ることができます.たとえば、子�M程はCoffee Scriptを使います.
 

  
  
  
  
  1. child_process = require('child_process'
  2. options = 
  3.   stdio: ['ipc'
  4. child = child_process.spawn 'coffee', ['./child.coffee'], options 
このうち、spawnの第一�を、翟O置で�行し、_本のデ�器でさえあれば、いいです.たとえば、Continuation.jsを使って、child=child upurcess.spawn(‘contionation’、'.child.co ffee’、options)だけが必要です.
転載元トランスポート