第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

不太懂這段代碼的同步鎖

鎖在while循環(huán)外面 如果一直循環(huán) 鎖不被釋放 其他線程怎么可以拿到鎖呢

正在回答

2 回答

當(dāng)while判斷滿足時,進(jìn)入wait,將當(dāng)前線程暫停并且釋放資源等待后面的線程,當(dāng)下個線程進(jìn)入的時候,判斷條件不滿足時,執(zhí)行notifyall,喚醒所有線程,然后如果等待中的線程獲得執(zhí)行資格時,當(dāng)前線程將會繼續(xù)執(zhí)行while。不知道這樣理解對不對。

0 回復(fù) 有任何疑惑可以回復(fù)我~

聲明:解釋轉(zhuǎn)自 sxian_wang 的回答

先明白兩個概念:鎖池和等待池。synchronized是鎖池,wait、notify、notifyAll是等待池。等待池的對象是不會競爭鎖的,當(dāng)notifyAll后,等待池中的線程會被喚醒進(jìn)入到該線程的鎖池中重新競爭對象鎖,重新獲得鎖后的對象會從wait后繼續(xù)執(zhí)行代碼,其他對象會被阻塞,而不是wait。被阻塞的對象會等待下一次被喚醒(notify、notifyAll)。另外,notify不是線程安全的,notifyAll才是。

2 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

不太懂這段代碼的同步鎖

我要回答 關(guān)注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號