sleep() メソッド は、Thread クラスの static メソッドであり、現在実行中 データ スレッドは「実行不可」状態になり、 wait() メソッドはインスタンス メソッドです。スレッド オブジェクトを使用して呼び出します。オブジェクトにのみ影響します。 。 sleep() メソッドは、時間の経過後に起動するか、中断() メソッドを呼び出します。一方、wait() メソッドは、時間の経過後に起動するか、呼び出します。 >notify() または notifyAll() メソッドの有効期限が切れます。 sleep() メソッドは待機中に ロックやモニター を解放しませんが、wait() メソッドは待機中にロックやモニターを解放します。
public static void sleep(long millis) throws InterruptedException
public final void wait() throws InterruptedException<strong> </strong>
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 サイトの他の関連記事を参照してください。