【Node.js24.x】Object::fork()メソッドの使い方
forkメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
forkメソッドは、Node.jsで新しいNode.jsプロセスを生成し、親プロセスと子プロセスの間で通信を確立するメソッドです。これは主にchild_processモジュールの一部として提供されます。
このメソッドは、メインのNode.jsアプリケーションから、別のNode.jsスクリプトを独立したプロセスとして実行したい場合に利用されます。例えば、時間のかかる計算処理やCPUを集中的に使うタスクを別プロセスに分離することで、メインプロセスがブロックされるのを防ぎ、アプリケーション全体の応答性を保つことができます。Webサーバーであれば、ユーザーからのリクエスト処理が滞ることなく継続されます。
forkメソッドで起動された子プロセスは、親プロセスとは異なるメモリ空間とイベントループを持つ完全に独立したプロセスです。子プロセスは指定されたNode.jsスクリプトを実行し、このとき自動的にIPC(Inter-Process Communication:プロセス間通信)チャネルが親プロセスとの間に確立されます。このIPCチャネルを利用することで、親プロセスと子プロセスはsend()メソッドを通じてメッセージを相互に送受信でき、柔軟な連携が可能になります。
forkメソッドは、Node.jsスクリプトの実行とIPC通信に特化しており、Node.jsのクラスターモジュールのように、複数のCPUコアを活用するアプリケーションで利用されます。
構文(syntax)
1const child_process = require('node:child_process'); 2 3const childProcess = child_process.fork('path/to/child.js');
引数(parameters)
modulePath, args=[], options
- modulePath: string: 子プロセスとして実行するモジュールのパス
- args: Array<any> = []: 子プロセスに渡すコマンドライン引数の配列
- options: Object = {}: 子プロセスに関する追加の設定オプションのオブジェクト
戻り値(return)
ChildProcess
Object.fork() メソッドは、新しい Node.js プロセスを生成し、それを返します。この返り値は ChildProcess クラスのインスタンスであり、子プロセスとの通信や制御に使用できます。