【Ruby3.x】Thread::fork()メソッドの使い方
forkメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
forkメソッドは、RubyのThread.newメソッドと同じく、新しいスレッドを作成し、そのスレッド内で指定されたコードブロックを実行するメソッドです。プログラムの実行中に、特定の処理を現在の実行フローとは独立して並行的に行いたい場合に利用されます。
このメソッドにブロックを渡すと、Rubyは新しい実行スレッドを生成し、その中でブロック内の処理を開始します。これにより、時間のかかるタスク(例えばファイル操作やネットワーク通信など)をバックグラウンドで実行しながら、メインのプログラムは他の処理を継続することが可能になります。
forkメソッドは、新しく生成されたThreadオブジェクトを返します。このオブジェクトを利用して、生成されたスレッドの状態を確認したり、スレッドが完了するのを待機したりするなど、スレッドの管理を行うことができます。プログラムの応答性を高め、複数の処理を効率的に同時に進めるための重要な機能の一つです。
構文(syntax)
1Thread.fork do 2 # このブロック内の処理が新しいスレッドで実行されます 3end
引数(parameters)
*rest
- rest: Thread.new のブロックに渡される引数
戻り値(return)
Integer, nil, false
Thread#forkは、新しいスレッドを生成してブロックを非同期に実行します。成功した場合、子スレッドのID(Integer)を返します。親スレッドの制御をブロックせず、子スレッドの実行が完了するまで待機しません。子スレッドの生成に失敗した場合はnil、または(場合によっては)falseを返すことがあります。