javaスレッドのライフサイクルにある状態を列挙する
Javaスレッドのライフサイクルには、次のステータスがあります。
- 新規(New):スレッドオブジェクトを作成時にスレッドはこの状態になる。
- 実行可能(Runnable):スレッドオブジェクトがstart()メソッドを呼び出した後、そのスレッドは実行可能状態で、CPUタイムスライスを取得して実行されるのを待つ。
- 実行(Running):スレッドが CPU 使用時間を獲得すると、そのスレッドは実行状態となり、スレッドの `run()` メソッド内のコードを実行します。
- ブロック(Blocked):何らかのリソースやロックの取得などで一時的に処理を停止している状態。
- 待機中(Waiting):スレッドは待機状態であり、wait() メソッドを呼び出したか、join() メソッドで他のスレッドの待機キューに参加したためです。
- タイムアウト待ち(Timed Waiting):スレッドはタイムアウト待ち状態であり、sleep()メソッドが呼び出されたか、またはwait(long timeout)メソッドが呼び出され、待ち時間が指定された可能性があります。
- 終了(Terminated): スレッドの run() メソッドの実行が完了したか、または、スレッドが中断された場合に、そのスレッドは終了状態になる。