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

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

到底什么是爭用條件?為什么能量會不守恒

當(dāng)from里能量少于amount時候,返回return。為什么這里就會產(chǎn)生爭用條件呢?為什么只要讓這里開始wait

正在回答

1 回答

這里存在一個概念性問題:工作內(nèi)存 和? 主內(nèi)存

線程操作數(shù)據(jù)時:會將主內(nèi)存中的數(shù)值read ->load 到工作內(nèi)存中

線程操作完成后:工作內(nèi)存中的數(shù)據(jù) store ->write 到主內(nèi)存中

https://img1.sycdn.imooc.com//5ad80b690001765507950508.jpg

這里畫了一個圖解釋一下:

線程1獲取到資源后進(jìn)行一系列的操作(獲取到a ,并進(jìn)行修改為5500,還未來得及再次寫去主內(nèi)存中),在某一時刻線程進(jìn)入了阻塞狀態(tài);

此時線程2隆重登場 :線程而進(jìn)行了全套操作(獲取到a ,并進(jìn)行修改為5900,再存入主內(nèi)存中),此時資源a被釋放,線程1繼續(xù)操作,將5500寫入主內(nèi)存中,

全程a的變化為 :5000->5900->5500也就是最終值為5500,而在線程2操作時有一個數(shù)組數(shù)值減少了900,線程1操作時有一個數(shù)組數(shù)值減少了500,這里a只多了500,所以就造成不守恒了。(因為操作哪一個數(shù)是隨機的,這里操作目標(biāo)數(shù)值是同一個 a )。

當(dāng)返回return后,EnergySystemTest中的一個循環(huán)結(jié)束,這個循環(huán)后面的代碼也不會去執(zhí)行,而新的一個循環(huán)開始時就有可能爭用數(shù)據(jù)a ,這里造成了爭用產(chǎn)生。

使用wait 后,當(dāng)線程1操作被中斷后進(jìn)入wait set集合等待,只有線程完全執(zhí)行完以后,調(diào)用notify方法,此時才能喚醒線程繼續(xù)往下執(zhí)行。

注意兩個方法區(qū)別:return 會讓兩個線程只有一次最終結(jié)果的輸出;wait可以有兩次輸出。


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

慕瓜7073846 提問者

非常感謝!
2018-04-19 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

到底什么是爭用條件?為什么能量會不守恒

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

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

幫助反饋 APP下載

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

公眾號

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