【Ruby3.x】Thread::status()メソッドの使い方
statusメソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
statusメソッドは、特定のThreadオブジェクトの現在の実行状態を表す文字列を返すメソッドです。RubyにおいてThreadは、プログラム内で複数の処理を並行して実行するための機能であり、このメソッドは個々のThreadが現在どのような状況にあるかを正確に把握するために使用されます。
このメソッドが返す値は、Threadの状況に応じていくつかの種類があります。Threadが実行中であるか、または実行準備が整っている状態であれば、"run"という文字列を返します。もしThreadが、例えばsleepメソッドによる一時停止や、他のThreadの終了を待つjoinメソッドの呼び出し、あるいはI/O処理の完了などを待機している状態であれば、"sleep"を返します。Threadが終了処理の途中である場合は"aborting"を、そして既に完全に終了している場合は"dead"という文字列を返します。
特に重要なのは、Threadの終了状況を示す特別な戻り値です。Threadが何らかの例外によって終了した場合、このメソッドは文字列ではなくfalseという値を返します。一方、Threadが例外もなく、通常の処理を正常に完了して終了した場合は、nilという値を返します。これらの戻り値を通じて、プログラム内で動作するThreadの状態を細かく監視し、適切な制御やデバッグを行うことが可能になります。
構文(syntax)
1t = Thread.new { sleep 0.01 } 2puts t.status 3t.join 4puts t.status
引数(parameters)
引数なし
引数はありません
戻り値(return)
String
スレッドの現在の状態を示す文字列を返します。例えば、:sleep、:run、:kill などがあります。