在有多個實例在等待的線程中調用notify()時,Java(或JVM)如何選擇喚醒哪個線程?Java的通知如何工作?
-2
A
回答
2
來源,你可以使用一個答案:
Java Language Specification章17.2.2通知:
沒有選擇哪個線程在等待集合的保證。Javadoc上
Object.notify()
寫着:
喚醒在此對象監視器上等待的單個線程。如果任何線程正在等待這個對象,則選擇其中一個線程來喚醒。 這個選擇是任意的,並且由實現決定。
+0
如果您認爲之前的研究不足,請將問題向下投票。我喜歡你指向可能找到的資源的方法。 +1 –
2
通知方法只喚醒等待對象的一個線程,該線程開始執行。所以如果有多個線程在等待一個對象,這個方法只會喚醒其中的一個。要喚醒的線程的選擇取決於線程管理的OS實現。
相關問題
- 1. Facebook通知如何工作?
- 2. 如何通知機制的工作
- 3. StackOverflow的通知如何工作?
- 4. 通知在Java線程中如何工作?
- 5. Java關鍵事件處理機制(KeyListeners通知)如何工作?
- 6. iOS推送通知如何工作?
- 7. 通知方法如何工作
- 8. 等待和通知如何工作?
- 9. 如何讓通知管理員工作?
- 10. 通知如何在PostgreSQL中工作?
- 11. facebook通知如何在反手工作
- 12. PhoneGap的通知不工作
- 13. Java:操作員通知
- 14. Toastr通知不工作
- 15. yootheme UIkit通知不工作
- 16. NS通知TableViewController不工作
- 17. PendingIntent不通知工作
- 18. chrome.storage.sync.get通知不工作
- 19. 通知()和notifyAll的()沒有在我的Java代碼工作
- 20. 如何知道工作
- 21. 如何工作的在Java
- 22. Java的PreparedStatement如何工作?
- 23. 通過Outlook 2003通知TFS工作項?
- 24. 如何知道Eclipse中工作區中的java文件數量?
- 25. Java中的窗口操作通知
- 26. 推送通知如何工作,它的要求是什麼?
- 27. 如何在顯示其工作表時通知我的對象?
- 28. Facebook上的通知區域如何工作?
- 29. 基於服務器的通知如何在android上工作?
- 30. 如何使通知燈在Android上的react-native工作?
它不;結果是不確定的。這就是爲什麼你不應該使用它,而是'.notifyAll()'。除非你確定你只有一個'.wait()'呃。 – fge
注意:如果沒有線程正在等待對象,則通知將被丟棄。 –