【Ruby3.x】Thread::run()メソッドの使い方
runメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
runメソッドは、RubyのThreadクラスに属し、一時停止状態にあるスレッドの実行を再開するメソッドです。Rubyにおいて、複数の処理を並行して実行する「スレッド」は、プログラムの効率を高める重要な仕組みです。Thread#stopメソッドなどによって明示的に実行が中断され、停止状態にあるスレッドを、再び動作可能な状態に戻したい場合にこのrunメソッドを利用します。
runメソッドが呼び出されると、対象のスレッドは「停止中」の状態から「実行可能」な状態へと移行します。これにより、Rubyのランタイムシステムが管理するスケジューラの判断に基づき、そのスレッドは実行を再開できるようになります。しかし、runメソッドを呼び出したからといって、そのスレッドが直ちに実行を開始するわけではありません。あくまで実行を再開する「準備が整う」状態になり、実際の実行タイミングはシステムのスケジューリングに委ねられます。すでに実行中のスレッドや、停止状態にないスレッドに対してこのメソッドを呼び出しても、特に影響はありません。このメソッドは、特定のスレッドの実行を一時的に中断し、適切なタイミングで再開させたいといった、より細かなスレッド制御を行う際に役立ちます。
構文(syntax)
1t = Thread.new { Thread.stop } 2sleep 0.1 3t.run
引数(parameters)
引数なし
引数はありません
戻り値(return)
Thread
Thread#runメソッドは、新しく作成したスレッドを実行状態にします。このメソッドの戻り値は、実行を開始したThreadオブジェクト自身です。