Javaスレッドステータスには、どのような種類がありますか?

Javaスレッドは以下の状態をとり得る:

  1. 新建状態(New):スレッドオブジェクトが作成されたとき、この状態になります。このときスレッドはまだ実行されていません。
  2. 実行可能な状態(Runnable):スレッドのstart()メソッドが呼び出されると、スレッドは実行可能な状態になります。このとき、スレッドはタスクを実行しています。
  3. ブロック状態(Blocked):スレッドがタスクを実行している際に、入力待ちやロック待ち、他のスレッド待ちなどのブロック状態に遭遇した場合、スレッドはブロック状態に移行します。ブロック状態では、スレッドはブロック条件が解除されるまで一時的に実行を停止します。
  4. 待ち状態(Waiting):スレッドは特定の条件が満たされるまで待機状態に遷移するために wait() メソッドを呼び出せます。この状態ではスレッドは CPU リソースを消費せず、呼び出しが来るまで待ちます。
  5. タイムアウト待ち(Timed Waiting):スレッドは特定の条件が満たされるのを待っているときにタイムアウト時間を設定し、メソッド `sleep()` を呼び出してタイムアウト待ち状態に入ることができます。スレッドはタイムアウト待ち状態では CPU リソースを消費せず、タイムアウト時間が到来するか呼び出されるまで待ちます。
  6. 終了状態(Terminated):スレッドはタスクの実行が完了するか、中断された後に終了状態に移行します。この状態では、スレッドは再実行できません。
bannerAds