1. 説明
スレッド ロックは、待機中のスレッドが、ウェイクアップに必要な条件が決して確立できないため、または他のスレッドがウェイクアップできないため、非実行状態にあることを意味します。このスレッドをウェイクアップします (スレッドが終了していない) ため、そのタスクは進行できなくなります。
2. スレッド ロックは 2 つのタイプに分類されます:
(1) 信号損失ロック: 信号損失ロックは、待機する対応する通知スレッドがないために発生します。がウェイクアップし、待機中のスレッドが待機状態のままになります。
典型的な例は、待機中のスレッドが Object.wait()/Condition.await() を実行する前に保護条件の判定を行わないことですが、この時点で実際には保護条件が成立している可能性があり、保護条件が成立している可能性があります。対応する保護条件に関係する共有変数が確立され、待機中のスレッドに通知されるため、待機中のスレッドは待機状態になり、そのタスクは進行できなくなります。
(2) ネストされたモニターのロックアップ: ネストされたモニターのロックアップは、ネストされたロックが原因で待機中のスレッドが起動できない障害です。
たとえば、スレッドは内部ロック Y.wait() のみを解放し、外部ロック X は解放しませんが、通知スレッドは Y.notifyAll() を使用する前に、まず外部ロック X を取得する必要があります。 ) 待機中のスレッドをウェイクアップします。これにより、入れ子待機の現象が発生します。
Java の基本データ型は次のように分類されます:
1. 整数型。整数のデータ型を表すために使用されます。
2. 浮動小数点型、小数を表すために使用されるデータ型。
3. 文字型. 文字型のキーワードは「char」です。
4. ブール型は、論理値を表す基本的なデータ型です。
以上がJava スレッドのデッドロックとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。