Java スレッドの実行サイクルには、次の状態があります:
1、NEW
この状態これは、スレッドが作成されたばかりで、まだ開始されていないことを意味します。
2. RUNNABLE
は、スレッドが正常に実行されていることを意味します。もちろん、時間のかかる計算/IO 待機操作/CPU タイム スライスの切り替えが発生する可能性があります。この状態で発生する待機は、通常、ロックやスリープなどではなく、他のシステム リソースです。
(推奨ビデオ チュートリアル: java ビデオ )
3. BLOCKED
この状態では、複数のスレッドが実行されています。これは、別のスレッドの同期ブロックの実行解放を待機する場合や、他の誰かが再入可能な同期ブロックで wait() メソッドを呼び出す場合など、同期操作のシナリオです。これは、スレッドがクリティカル セクションに入るのを待機していることを意味します。
4. WAITING
この状態は、スレッドが特定のロックを所有した後、その wait メソッドを呼び出し、他のスレッド/ロック所有者が通知を呼び出すのを待つことを意味します。 /notifyAll を 1 回実行すると、スレッドは次の操作に進むことができます。
ここで、BLOCKED と WATING の違いを区別する必要があります。1 つはクリティカル ポイントの外側で開始を待っており、もう 1 つは理解ポイントの内側で他のユーザーからの通知を待っています。メソッドが別のスレッドに参加する場合、このメソッドも WAITING 状態に入り、参加しているスレッドの実行が終了するのを待ちます。
5. TIMED_WAITING
この状態は制限付き (時間制限) WAITING であり、通常は wait(long) や join(long) などが呼び出されたときに発生します。別のスレッドがスリープした後、そのスレッドも TIMED_WAITING 状態に入ります。
6. TERMINATED
この状態では、スレッドの run メソッドが実行されたことを意味し、これは基本的に死亡と同等です (スレッドが保持されている場合)その時点で永続的に使用されるため、リサイクルできない場合があります)。
推奨チュートリアル: java エントリー プログラム
以上がJava スレッドのいくつかの状態は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。