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

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

armyTaskOfSuiDynasty.keepRunning=false;與armyTaskOfRevolt.keepRunning=false;什么以時候執行呢?

?armyTaskOfSuiDynasty.keepRunning=false;與armyTaskOfRevolt.keepRunning=false;什么以時候執行呢?沒有寫到軍隊線程中的while循環內,怎么會被調用到呢?

==========================================

//啟動線程,讓軍隊開始作戰
?? ??? ?armyOfSuiDynasty.start();
?? ??? ?armyOfRevolt.start();
?? ??? ?
?? ??? ?//舞臺線程休眠50毫秒,大家專心觀看軍隊廝殺
?? ??? ?try {
?? ??? ??? ?Thread.sleep(50);
?? ??? ?} catch (InterruptedException e) {
?? ??? ??? ?e.printStackTrace();
?? ??? ?}
?? ??? ?
?? ??? ?armyTaskOfSuiDynasty.keepRunning=false;
?? ??? ?armyTaskOfRevolt.keepRunning=false;

正在回答

3 回答

我的理解是這樣的 既然是多線程,多天線程同時進行,在農民和隋軍的那兩條線程進行的同時,就是main下的主線程也在運行(Stage),它在執行農民和隋軍的線程的同時,也在一直往下運行,運行到armyTaskOfSuiDynasty.keepRunning=false;
?armyTaskOfRevolt.keepRunning=false;

農民和隋軍的線程自然也就停止了。

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

艾米麗宏 提問者

非常感謝!
2018-07-01 回復 有任何疑惑可以回復我~

在主線程中加入sleep讓軍隊線程獲得時間資源,進行打斗。軍隊線程中的yield使雙方的打斗隨機進行,所以次數不確定。因為volatile的存在所以其他的線程可以修改runnable的值,這里的其他線程值主線程(stage),即在sleep休眠時間結束后執行armyTaskOfSuiDynasty.keepRunnable = false; armyTaskOfRevolt.keepRunnable = false;
使得軍隊的對戰結束

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

這個我理解應該是在循環里打夠了多少回合,跳出循環直接給?armyTaskOfSuiDynasty.keepRunning和??armyTaskOfRevolt.keepRunning賦值false,意味著結束

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

艾米麗宏 提問者

是具體多少回合呢,還是隨機的呢?
2018-05-30 回復 有任何疑惑可以回復我~
#2

我夢寐以求是真愛與自由 回復 艾米麗宏 提問者

回合的多少取決于Thread.sleep()里的時間,主線程stage在執行到休眠的時候它是停下來的,所以keepRunning依舊是true,這就保證了armyTaskOfSuiDynasty.satrt(), armyTaskOfRevolt.start()并沒有停止。你休眠的時間越長,戰斗回合越多
2018-08-28 回復 有任何疑惑可以回復我~
#3

Silent_Walke

我覺得應該是時刻監控的,起碼是經常監控的,并且關鍵字volatile是活躍的意思,所以設為false之后很快就能停下,
2018-10-08 回復 有任何疑惑可以回復我~
#4

qq_慕圣2566072 回復 艾米麗宏 提問者

是隨機的,主線程中用了sleep,休眠時間結束就執行sleep后面的語句
2019-06-20 回復 有任何疑惑可以回復我~
查看1條回復

舉報

0/150
提交
取消

armyTaskOfSuiDynasty.keepRunning=false;與armyTaskOfRevolt.keepRunning=false;什么以時候執行呢?

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

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

幫助反饋 APP下載

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

公眾號

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