在Java中,我們什麼時候可以呼叫Thread的wait()和wait(long)方法?
每當對物件呼叫wait()方法時,它都會導致當前執行緒等待,直到另一個執行緒呼叫notify()或notifyAll( ) 該物件的方法,而wait(long timeout) 導致目前執行緒等待,直到另一個執行緒呼叫notify() 或 notifyAll( ) 該物件的方法,或已過了指定的逾時時間。
wait()
在下面的程式中,當 wait() 在物件上調用,執行緒從運行狀態進入等待狀態。它等待其他執行緒呼叫 notify() 或 notifyAll() 才能進入可運行狀態,將會形成死鎖。
範例
class MyRunnable implements Runnable { public void run() { synchronized(this) { System.out.println("In run() method"); try { this.wait(); System.out.println("Thread in waiting state, waiting for some other threads on same object to call notify() or notifyAll()"); } catch (InterruptedException ie) { ie.printStackTrace(); } } } } public class WaitMethodWithoutParameterTest { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable, "Thread-1"); thread.start(); } }
輸出
In run() method
#wait(long)
#在下面的程式中,當物件呼叫 wait(1000)時,執行緒從執行狀態進入等待狀態,即使在逾時時間過後沒有呼叫notify()或 notifyAll()執行緒也會從等待狀態進入可運作狀態。
範例
class MyRunnable implements Runnable { public void run() { synchronized(this) { System.out.println("In run() method"); try { <strong> this.wait(1000); </strong> System.out.println("Thread in waiting state, waiting for some other threads on same object to call notify() or notifyAll()"); } catch (InterruptedException ie) { ie.printStackTrace(); } } } } public class WaitMethodWithParameterTest { public static void main(String[] args) { MyRunnable myRunnable = new MyRunnable(); Thread thread = new Thread(myRunnable, "Thread-1"); thread.start(); } }
輸出
In run() method Thread in waiting state, waiting for some other threads on same object to call notify() or notifyAll()
以上是在Java中,我們什麼時候可以呼叫Thread的wait()和wait(long)方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

如何使用Python呼叫百度地圖API實作地理位置查詢功能?隨著網路的發展,地理位置資訊的取得和利用越來越重要。百度地圖是一款非常常見且實用的地圖應用,它提供了豐富的地理位置查詢服務。本文將介紹如何使用Python呼叫百度地圖API實作地理位置查詢功能,並附上程式碼範例。申請百度地圖開發者帳號和應用程式首先,你需要擁有一個百度地圖開發者帳號,並建立一個應用程式。登入

楔子我們知道物件被創建,主要有兩種方式,一種是透過Python/CAPI,另一種是透過呼叫類型物件。對於內建類型的實例物件而言,這兩種方式都是支援的,例如列表,我們即可以透過[]創建,也可以透過list(),前者是Python/CAPI,後者是呼叫類型物件。但對於自訂類別的實例物件而言,我們只能透過呼叫類型物件的方式來創建。而一個物件如果可以被調用,那麼這個物件就是callable,否則就不是callable。而決定一個物件是不是callable,就取決於其對應的型別物件中是否定義了某個方法。如

區別說明1、wait()是Object的方法,sleep()是Thread的方法。 2、wait()必須採用同步方法,不需要sleep()方法。 3.執行緒在同步方法中執行sleep()方法,不釋放monitor鎖定,wait()方法釋放monitor鎖定。短暫休眠後,sleep()方法會主動退出阻塞,而wait()方法需要在沒有指定wait時間的情況下被其他執行緒中斷才能退出阻塞。實例importjava.text.SimpleDateFormat;importjava.util.Date;publicc

PHP攝影機呼叫技巧:如何實現多攝影機切換攝影機應用已成為許多Web應用的重要組成部分,例如視訊會議、即時監控等等。在PHP中,我們可以使用各種技術來實現對攝影機的呼叫和操作。本文將重點放在如何實現多鏡頭的切換,並提供一些範例程式碼來幫助讀者更好地理解。攝影機呼叫基礎在PHP中,我們可以透過呼叫JavaScript的API來實現攝影機的呼叫。具體來說,我們

如何解決PHP開發中的外部資源存取和調用,需要具體程式碼範例在PHP開發中,我們經常會遇到需要存取和調用外部資源的情況,例如API介面、第三方庫或其他伺服器資源。在處理這些外部資源時,我們需要考慮如何進行安全的存取和調用,同時確保效能和可靠性。本文將介紹幾種常見的解決方案,並提供相應的程式碼範例。一、使用curl函式庫進行外部資源呼叫curl是一個非常強大的開源函式庫

如何透過Python程式呼叫百度地圖API實現地圖展示功能?隨著網路的快速發展,地圖應用成為了我們生活中不可或缺的一部分。而百度地圖作為國內最大的地圖應用之一,為我們提供了豐富的服務和API接口,可以很方便地實現地圖展示功能。本文將介紹如何透過Python程式呼叫百度地圖API來實現地圖展示功能,並給出對應的程式碼範例。首先,我們需要在百度開放平台上註冊一個

有很多朋友還不知道matlab如何呼叫m文件,所以下面小編就講解了matlab調用m文件的方法,有需要的小伙伴趕緊來看一下吧,相信對大家一定會有所幫助哦。 1.先開啟matlab軟體,在主介面中點選“開啟”,如下圖所示。 2、然後選擇一個需要打開的m文件,選擇打開,如下圖。 3.接著在編輯器中看m檔案的檔名和變數數目,如下圖。 4.可以在命令列中輸入m檔名後括號加變數值,就可以調用,如下圖所示。 5.最後就可以成功呼叫m文件,如下圖所示。上面就是小編為大家帶來的matlab如何呼叫m檔的全

使用Java呼叫WebService的方法步驟,需要具體程式碼範例Web服務是一種基於Web的應用程式接口,透過網路提供各種功能。在Java開發中,我們經常需要使用Web服務來實現與其他系統的互動。本篇文章將介紹如何使用Java呼叫WebService,並提供具體的程式碼範例。一、了解WebServiceWebService是一種標準化的通訊協議,使用XML格式
