對象的wait()
方法只能在同步上下文中調用,即當前線程必須鎖定對象才能調用wait()
方法。現在如果一個線程T1鎖定一個對象(obj
)並調用其等待方法obj.wait()
。其他線程如何鎖定此對象(obj
),以便它們也可以調用等待,它已經擁有T1?線程 - wait()
3
A
回答
9
wait
釋放同步的上下文。從documentation:
當前線程必須擁有該對象的監視器。這款顯示器並等待另一個線程的線程釋放 所有權通知 線程在等待這個對象監視器醒來(...)
0
上你只需要調用等待的時間是同步的()方法,而不是等待時間的持續時間。
相關問題
- 1. Java線程wait()notify()方法
- 2. Wait()導致UI線程掛起 - 何時應該使用Wait()?
- 3. wait()不強制線程等待?
- 4. Java線程wait()&notify()與並行任務
- 5. 在多線程中使用wait()和notify()
- 6. Java - 兩個線程wait()和notify()
- 7. 呼叫wait()內線程的run()方法
- 8. 控制線程使用wait()和notify()
- 9. Wait()和Notify()概念 - Java多線程
- 10. Java wait()&notify()vs Android wait()&notify()
- 11. Android Java處理程序,線程同步塊(notifyall&Wait)
- 12. IllegalMonitorStateException notify()和wait()
- 13. InterruptionException wait方法
- 14. android countdowntimer wait
- 15. 子句wait():進程調度
- 16. UNIX進程:fork()和wait()的
- 17. Java - wait()和notifyAll()
- 18. 如何使用wait()和notifyAll()逐個運行線程?
- 19. 線程鎖定互斥快於std :: conditional_variable :: wait()
- 20. 如何用wait()和notify()正確地暫停線程
- 21. 當:: thread :: wait存在時,爲什麼我的tcl線程退出?
- 22. java.lang.IllegalMonitorStateException:對象在wait()之前未被線程鎖定?
- 23. 呼叫到Java對象的wait()打破線程同步
- 24. 如何使用wait和notify來暫停線程JavaFX
- 25. wait()函數不能在android studio的線程中工作
- 26. 線程爲什麼自發地從wait()中喚醒?
- 27. 在Java中調用wait()之後,線程會做什麼?
- 28. java多線程訪談:sleep,wait,notify,yield - 哪一個是回調?
- 29. 無法在線程中運行wait()方法?
- 30. 製作顯示「Please Wait」的擺動線程JDialog
是的,同步塊進入半鎖,其他線程可以獲得鎖。由於同步塊圍繞兩個語句,喚醒線程'加入'同步的上下文,並且在上下文之外不可能訪問'鎖定'資源。 –
「半鎖」..?! –