説明
1. Object クラスに属しており、オブジェクトが wait メソッドを呼び出した後、現在オブジェクトのロックを保持しているスレッドを解放し、待機キューに入ります。
2. 相手側は、notify を呼び出して、待機キュー内のランダムに選択されたスレッドから競合他社のロックをウェイクアップし、もう一方のパーティは、notifyall を呼び出して、待機キュー内のすべてのスレッドから競合他社のロックをウェイクアップします。
例
public class Demo { public static void main(String[] args) { Demo demo = new Demo(); Thread t1 = new Thread(() -> { synchronized (demo) { System.out.println("t1 start"); try { demo.wait(); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("t1 end"); } }); Thread t2 = new Thread(() -> { synchronized (demo) { System.out.println("t2 start"); System.out.println("t2 end"); demo.notify(); } }); t1.start(); t2.start(); } }
以上がJavaでwaitを使用してスレッドステータスを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。