首頁 > Java > java教程 > 在Java中,wait()和sleep()方法之間的差異是什麼?

在Java中,wait()和sleep()方法之間的差異是什麼?

WBOY
發布: 2023-08-26 23:37:21
轉載
791 人瀏覽過

在Java中,wait()和sleep()方法之間的差異是什麼?

sleep()方法Thread類別的一個靜態方法,它可以發送目前運行的資料執行緒進入「不可運行」狀態,而 wait()方法是一個實例方法,我們使用執行緒物件呼叫它,並且它僅對該物件產生影響。 sleep() 方法在時間到期後喚醒或呼叫 interrupt()  方法,而wait()  方法在時間到期後喚醒或呼叫 >notify()notifyAll() 方法。 sleep() 方法在等待時不會釋放任何鎖定或監視器,而 wait() 方法會在等待時釋放鎖定或監視器。

sleep() 方法的語法

public static void sleep(long millis) throws InterruptedException
登入後複製

wait() 方法的語法

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中文網其他相關文章!

相關標籤:
來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板