ホームページ  >  記事  >  Java  >  Java の wait() メソッドと sleep() メソッドの違いは何ですか?

Java の wait() メソッドと sleep() メソッドの違いは何ですか?

WBOY
WBOY転載
2023-08-26 23:37:21721ブラウズ

Java の wait() メソッドと sleep() メソッドの違いは何ですか?

sleep() メソッド は、Thread クラスの static メソッドであり、現在実行中 データ スレッドは「実行不可」状態になり、 wait() メソッドはインスタンス メソッドです。スレッド オブジェクトを使用して呼び出します。オブジェクトにのみ影響します。 。 sleep() メソッドは、時間の経過後に起動するか、中断() メソッドを呼び出します。一方、wait() メソッドは、時間の経過後に起動するか、呼び出します。 >notify() または notifyAll() メソッドの有効期限が切れます。 sleep() メソッドは待機中に ロックやモニター を解放しませんが、wait() メソッドは待機中にロックやモニターを解放します。

Sleep() メソッドの構文

public static void sleep(long millis) throws InterruptedException

wait() メソッドの構文

public final void wait() throws InterruptedException<strong>
</strong>

Example

public class ThreadTest implements Runnable {
   private int number = 10;
   public void methodOne() throws Exception {
      synchronized(this) {
         number += 50;
         System.out.println("Number in methodOne(): " + number);
      }
   }
   public void methodTwo() throws Exception {
      synchronized(this) {
         Thread.sleep(2000); // calling sleep() method 
         this.wait(1000); // calling wait() method
         number *= 75;
         System.out.println("Number in methodTwo(): " + number);
      }
   }
   public void run() {
      try {
         methodOne();
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
   public static void main(String[] args) throws Exception {
      ThreadTest threadTest = new ThreadTest();
      Thread thread = new Thread(threadTest);
      thread.start();
      threadTest.methodTwo();
   }
}

出力

Number in methodOne(): 60
Number in methodTwo(): 4500

以上がJava の wait() メソッドと sleep() メソッドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。