child_process.fork

関数の概要

child_process.forkは、Node.jsのモジュールであり、新しいNode.jsプロセスをフォーク(複製)するための関数です。主に、マルチプロセス処理を実現するために使用されます。親プロセスとは独立した子プロセスを生成し、それぞれが独自のメモリ空間で実行されるため、親プロセスに影響を与えずに処理を並列化することができます。

パラメータの説明

引数 用途
modulePath String フォークする子プロセスのファイルパスを指定
args Array 子プロセスに渡すコマンドライン引数の配列
options Object 子プロセスの設定オプションを指定

戻り値

child_process.forkはChildProcessオブジェクトを返します。このオブジェクトは、子プロセスを制御するためのメソッドやイベントを持ち、非同期的に操作が行われます。

使用例

例1:子プロセスをフォークして、メッセージの送受信を行う


const cp = require('child_process');
const child = cp.fork('child.js');

child.send({ message: 'Hello from parent' });

child.on('message', (msg) => {
  console.log('Message from child:', msg);
});

例2:子プロセスを複数起動して並列処理を行う


const cp = require('child_process');

for (let i = 0; i  {
    console.log(`Message from worker ${i}:`, msg);
  });
}

関連する関数

  • child_process.exec: 外部プロセスを実行する
  • child_process.spawn: 新しいプロセスを生成し、I/Oストリームを接続する

まとめ

child_process.forkは、親プロセスとは独立した子プロセスを生成し、並列処理を実現するための関数です。注意点として、子プロセスごとに独自のメモリ空間が確保されるため、適切にリソースを管理する必要があります。