マルチスレッドのJavaの研究ノート - スレッドの状態

スレッドの状態が示されている:(ブロック)ブロックされた5つの状態、新しい(新)、レディ(Runnableを)、実行中(実行中)、の合計、死(死)

新しいステータス:プログラム・スレッドでオブジェクトが作成され、例えば:スレッドTは=新しいスレッド()新しい状態スレッド場合に、コードのスレッドが実行されていません。

レディ状態:名前はスレッドがCPUスケジューリングすること準備ができて、段階を実行する準備ができていることを示唆しています。あなたが実行するために、この時間()メソッドtoStartスレッドオブジェクト、レディ状態にスレッドを呼び出し、すぐに()メソッドを実行していない場合は、スレッドは、他のスレッドのCPU時間と競争しなければならない、CPU時間、彼らは唯一の実行を得ることができます前に、スレッド。

動作状態は:スレッドがCPUのタイムスライスを取得すると、それだけで本当に、運転に入ったコードで実行()メソッドを開始しました。タイムスライスを消費可能な場合、コードの実行()が最後に実行されていないが、この時間は、スレッドは、スレッドがCPUをスケジュールされる次の時間スライスを待つことができ、実行可能状態に入り、スレッドはRunnableを、交互に切り替え実行中ですプロセス;

ブロックされた状態:実行状態のスレッドは、以下の条件が満たされた場合、ブロックされた状態(ブロック)にスレッドの原因となります。スレッドがブロックされ、終了を待ってブロックした後、CPUのタイムスライスを取得し、プログラムを継続するために待って、実行可能状態になります。

   (1)障害物を待つ-スレッドウェイト()メソッドを呼び出すことにより、ジョブの完了を待つスレッド。
   同期ブロック(2) - (ロックが別のスレッドによって占領されたため)スレッドは、同期ロックの失敗を同期します、それは同期ブロッキング状態になります。
   (3)ブロックされた- (睡眠によって)、または呼び出し元のスレッドに参加()またはI / O要求を発行し、スレッドがブロッキングステートに入ります。睡眠()タイムアウトは、()(パートII研究)に参加すると終了するスレッドまたはタイムアウトを待つ、またはI / O処理が再度、準備完了状態にスレッドを終了しました。

死の状態:スレッドの実行が終わったり、異常終了するには、run()メソッドは、スレッドのライフサイクルです。

おすすめ

転載: www.cnblogs.com/ldh666/p/10993860.html
おすすめ