亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

哪位大神再給我解讀一下這段程序,謝謝

try?{
					//條件不滿足,?將當前線程放入Wait?Set
					lockObj.wait();
				}?catch?(InterruptedException?e)?{
					e.printStackTrace();
				}
			?}
			?
			?
			?System.out.print(Thread.currentThread().getName());
			?energyBoxes[from]?-=?amount;
			?System.out.printf("從%d轉移%10.2f單位能量到%d",?from,?amount,?to);
			?energyBoxes[to]?+=?amount;
			?System.out.printf("?能量總和:%10.2f%n",?getTotalEnergies());
			//喚醒所有在lockObj對象上等待的線程
			?lockObj.notifyAll();


正在回答

1 回答

條件不滿足時也就是其它線程還沒有將數據寫回(這里的lockObj是EnergySystem的final成員,用來標記EnergySystem,lockObj.wait()也就相當于EnergySystem實例.wait()),等待寫入之后(也就是滿足條件),執行邏輯代碼,在喚醒其它線程(有可能還沒有寫入數據的)??梢曰仡^看爭用條件那節,有助于理解,我專門截了圖。http://img1.sycdn.imooc.com//581862970001cc3719180977.jpg

1 回復 有任何疑惑可以回復我~
#1

Juneava 提問者

非常感謝!
2016-11-01 回復 有任何疑惑可以回復我~
#2

silencecorner

不謝^_^
2016-11-03 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

哪位大神再給我解讀一下這段程序,謝謝

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號