次のエディターは、Java スレッドに基づいたいくつかの状態に関する記事を提供します (詳細な説明)。編集者はこれがとても良いと思ったので、参考としてあなたに提供したいと思います。エディターを追って見てみましょう:
スレッドには 6 つの状態があります:
1.New (新しく作成された)
2.Runnable (実行可能) (実行中)
3.Blocked (ブロック済み)
4.待機中(待機中)
5.時間制限待機(時間制限待機)
6.終了(終了)
新規作成スレッド:
ご利用の際はnew 演算子を使用して新しいスレッド (new Thread(r) など) を作成すると、スレッドの現在のステータスはまだ new であり、スレッドの実行前に行うべき基本的な作業がまだいくつかあります。
実行可能なスレッド:
スレッドがstartメソッドを呼び出すと、スレッドは実行可能な状態になります。この状態のスレッドは実行中である場合もあれば、実行されていない場合もあります (つまり、Java 仕様で実行中のスレッドはまだ実行可能な状態にあります)。また、スレッドの実行後、またはブロッキング、待機、またはスリープ状態から戻った後も、実行可能状態に戻ります。
ブロックされたスレッド:
この状態では、別のスレッドの同期ブロックの実行解放を待ったり、他の誰かが再入可能な同期ブロックを呼び出したりするなど、複数のスレッドが同期操作を行っているシナリオです。 ) メソッドは、スレッドがクリティカル セクションに入るのを待っていることを意味します。
待機中のスレッド:
この状態は、スレッドが特定のロックを所有した後、その wait メソッドを呼び出すか、スレッドが join メソッドを呼び出して別のスレッドに参加し、参加したスレッドの実行を待機していることを意味します。終了状態。ここで、ブロッキング状態と待機状態の違いを区別する必要があります。1 つはクリティカル ポイントの外側で待機しており、もう 1 つはクリティカル ポイントの内側で待機しています。
時間制限付き待機スレッド:
スレッドがタイムアウトパラメータを指定してメソッドを呼び出すと、スレッドは時間制限付き待機状態に入ります。スーパーマーケットパラメータを持つメソッドには、Thread.sleep、Object.wait、Thread.join、 Lock.tryLock および Condition.await の時間指定バージョン。
終了スレッド:
1) runメソッドが正常終了したため、スレッドは自然終了しました。
2) キャッチされなかった例外により run メソッドが終了したため、予期せぬ死亡が発生しました。
スレッド状態間の遷移:
以上がJava スレッドでのいくつかのステータス共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。