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