亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Java中使用不同的類來使用wait()和notify()

如何在Java中使用不同的類來使用wait()和notify()

慕田峪7331174 2021-11-11 18:12:34
我試圖在 classA 中包含一個等待函數,但我想notify()從 classB 中。我怎樣才能做到這一點?
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

您在這里有多種選擇。最簡單的是創建一個對象,實際上是任何類型,并在兩個類之間共享該對象。


java中的任何對象都可以有notify()和wait()方法。


所以你可以創建一個對象


Object sharedObject = new Object();

然后將該對象傳遞給兩個類(或更準確地說,類的實例)


ClassA a = new ClassA(sharedObject);

ClassB b = new ClassB(sharedObject);

然后在 ClassA 中的一些方法中,您可以調用:


synchronized(sharedObject) {

     sharedObject.wait();

}

在一個線程上,然后在另一個線程上,您可以通過調用來喚醒它:


synchronized(sharedObject) {

     sharedObject.notify();

}

這是執行此操作的基本方法。請注意,在等待或通知之前,您需要對該對象進行同步。


有一種更先進和更強大的方法來做到這一點,使用條件變量。


您可以在這個優秀的在線課程https://www.udemy.com/java-multithreading-concurrency-performance-optimization/?couponCode=CONCURRENCY 中了解更多相關信息


它真的很便宜,但教你如何很好地使用所有這些并發技術。


查看完整回答
反對 回復 2021-11-11
  • 1 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號