androidスレッドのライフサイクルとは

AndroidのThreadには次のようなライフサイクルがあります。

  1. 新規の状態(New):スレッドオブジェクトが作成されているが、start() 手法がまだ呼び出されていない。
  2. スレッドオブジェクトの start() メソッドが呼び出されると、スレッドは実行(Runnable)状態になり、システムスケジューラによる実行待ちとなります。このとき、スレッドは実際に実行を開始していませんが、実行できる条件が整っています。
  3. スレッドはシステムでスケジュールされ、実行され始め、run()メソッドを実行します。
  4. ブロック状態(Blocked):スレッドは実行中に、何らかの理由(例:IO処理待ち、ロック獲得待ちなど)で一時的に実行を停止し、CPUリソースを解放してブロック状態に移行します。ブロック解除条件が満たされるまで、スレッドはこの状態に留まり続けます。
  5. スレッドはObjectクラスのwait()メソッドやThreadクラスのjoin()メソッドを呼び出すことで待機状態に移行します。待機状態のスレッドは他のスレッドに起こされるか、指定された時間が経過すると自動的に起こされます。
  6. スレッドは Thread クラスの sleep() メソッドや wait() メソッドを呼び出して、時間待ち状態に入ります。この待ち状態は通常の待ち状態とは異なり、一定時間が経過すると自動的に反応します。
  7. このスレッドは、run() メソッドの実行完了、catch されなかった例外の発生、または Thread クラスの stop() メソッドの呼び出し後に終了ステータスになります。終了したスレッドは、再度開始することはできません。
bannerAds