安全鎖 調(diào)用notify,wait的線程一定會(huì)獲得鎖嗎?
調(diào)用notify,wait的線程一定會(huì)獲得鎖嗎?wait and notify的性質(zhì)是基于條件對(duì)象的,并且只能由已獲取鎖的線程調(diào)用。Java中的每個(gè)對(duì)象都有一個(gè)隱式鎖。隱式鎖與條件對(duì)象相關(guān)聯(lián)。當(dāng)線程獲
調(diào)用notify,wait的線程一定會(huì)獲得鎖嗎?
wait and notify的性質(zhì)是基于條件對(duì)象的,并且只能由已獲取鎖的線程調(diào)用。Java中的每個(gè)對(duì)象都有一個(gè)隱式鎖。隱式鎖與條件對(duì)象相關(guān)聯(lián)。當(dāng)線程獲得隱式鎖(例如,進(jìn)入同步代碼區(qū)域)時(shí),它可以調(diào)用wait。語(yǔ)義是等待condition對(duì)象。其他線程可以等待condition對(duì)象。在滿足條件之后,它可以調(diào)用notify或no Tifyall來(lái)喚醒等待這個(gè)條件對(duì)象的所有線程。我建議您參考reentrantlock類,它可以反映上面提到的所有內(nèi)容。
newCondition()什么意思?
Newcondition Newcondition()返回綁定到此鎖實(shí)例的新條件實(shí)例。
在等待條件之前,鎖必須由當(dāng)前線程保持。呼叫條件。等待()將在等待前自動(dòng)釋放鎖,并在等待返回前重新獲取鎖。實(shí)現(xiàn)注意事項(xiàng)條件實(shí)例的具體操作取決于鎖的實(shí)現(xiàn),鎖的實(shí)現(xiàn)必須記錄在案。Return:此鎖實(shí)例的新條件實(shí)例拋出:Unsupported operationexception-如果鎖實(shí)現(xiàn)不支持條件