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

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

輔助的代碼有什么用

輔助的代碼還是要講清楚,不知道什么意思難以理解例子。作為一個初學者的猜測: 1.兩個線程start后會調用實現的run方法,每循環一次就釋放一次CPU資源(調用了 yield 2.輔助代碼Thread.sleep(50)表示CPU釋放資源休眠50毫秒,大概是用于掛起當前線程(不造什么用 3.設置keepRunning為false確保兩個線程中的死循環會停下來 4.運行armOfRevolt.join()方法讓當前運行線程阻塞,直到amyOfRevolt運行完畢,再運行剛才停止的線程 我不懂執行順序,一旦設置keepRunning為false,循環停止,不再輸出,join方法不知道有什么意義;

正在回答

2 回答

Thread.sleep(50)的作用是讓stage()這個線程休眠五十毫秒,寫在Thread.sleep(50)后面的就是終止條件,表面來看整個邏輯確實很奇怪,因為你發現一整套下來線程跑的次數比你想象中的多的多。而真正讓線程跑了那么多的就是這個休眠50毫秒。原因:

Thread?armyOfSuiDynasty?=?new?Thread(armyTaskOfSuiDynasty,?"隋軍");
Thread?armyOfRevolt?=?new?Thread(armyTaskOfSuiDynasty,?"農民起義軍");

//啟動線程,讓軍隊開始戰斗
armyOfSuiDynasty.start();
armyOfRevolt.start();

這里啟用了兩個線程,而這兩個線程是嵌套在stage()這個線程里面的。Thread.sleep(50)只是讓stage()休眠了五十毫秒,并沒有休眠

armyOfSuiDynasty.start();
armyOfRevolt.start();

而這兩個線程在沒有遇到keepRunning=false之前是死循環,這個時候Thread.sleep(50)又讓stage休眠了50毫秒,在這50毫秒里兩軍一直在干架,(如果你把時間改成1000,那會執行更多),所以原因差不多就這個吧,其他的也不多說了,你是個聰明人。

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

三季_1

完美解決了我的疑問,厲害!
2018-11-21 回復 有任何疑惑可以回復我~

yield()方法會使該線程釋放對cpu目前的占用,方便其他線程可以競爭cpu

join()方法是會讓執行該方法的線程一直執行完run()方法后,程序才會繼續往下執行

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

__小七__ 提問者

方法什么用隨便百度一下就知道了,我問的是視頻里的例子是在干什么,每段代碼結合起來的具體作用
2017-07-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

輔助的代碼有什么用

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

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

幫助反饋 APP下載

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

公眾號

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