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

WBOY
リリース: 2023-08-26 23:37:21
転載
777 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート