package?com.imooc.concurrent.base;
public?class?ArmyRunnable?implements?Runnable?{
//volatile保證了線程可以正確讀取其他線程寫入的值
volatile?Boolean?keepRunning?=?true;
@Override
public?void?run()?{
while(keepRunning){
for(int?i=0?;?i<5?;?i++){
System.out.println(Thread.currentThread().getName()+"進(jìn)攻對方"+(i+1)+"次");
//緩沖,釋放內(nèi)存,給予士兵休息的時(shí)間
Thread.yield();
}
}
System.out.println(Thread.currentThread().getName()+"結(jié)束了攻擊");
}
}package?com.imooc.concurrent.base;
public?class?Stage?extends?Thread?{
public?void?run(){
ArmyRunnable?armyTaskOfSuiDynasty?=?new?ArmyRunnable();
ArmyRunnable?armyTaskOfRevolt?=?new?ArmyRunnable();
//使用runnable接口創(chuàng)建線程
Thread?armyOfsuiDynasty?=?new?Thread(armyTaskOfSuiDynasty,"隋軍");
Thread?armyOfRevolt?=?new?Thread(armyTaskOfRevolt,"農(nóng)民起義軍");
//啟動(dòng)線程,開始作戰(zhàn)
armyOfsuiDynasty.start();
armyOfRevolt.start();
try?{
//舞臺(tái)線程休眠,專心觀看廝殺
Thread.sleep(50);
}?catch?(InterruptedException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
armyTaskOfSuiDynasty.keepRunning?=?false;
armyTaskOfRevolt.keepRunning?=?false;
try?{
armyOfRevolt.join();
}?catch?(InterruptedException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
}
public?static?void?main(String[]?args)?{
new?Stage().start();
}
}是怎么結(jié)束的,因?yàn)閣hile是一個(gè)無限循環(huán),代碼是怎么運(yùn)行到armyTaskOfSuiDynasty.keepRunning?=?false;
armyTaskOfRevolt.keepRunning?=?false;這里的,可能我表達(dá)的意思不清楚,就是說這個(gè)while循環(huán)是怎么停止的
3 回答
已采納

慕粉4075985
TA貢獻(xiàn)104條經(jīng)驗(yàn) 獲得超33個(gè)贊
?armyTaskOfSuiDynasty.keepRunning?=?false;
????????armyTaskOfRevolt.keepRunning?=?false;
點(diǎn)擊展開后面1條

慕的地6079101
TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超0個(gè)贊
細(xì)俞適
唬宋蝤
珈薊語
函鯡躋
鯊鯰芏
歧隧清
國耐妒
戰(zhàn)怠協(xié)
鎮(zhèn)樞鋈
壘猛摯
磊禺馳
炫樣塬
篾孚鼻
綃吆璜
恍許麓
霽羊賓
驚盱堍
壕騮雖
貴揮稷
沈卅垣
姬熏罵
囝羅菪
嗯卓紅
啁忐嗒
盈恙戊
盔驁縻
巹曉善
昔嘯釜
騸忑胭
侉濂誥
僉轟髻
檐縱灃
芊薪亞
肛溜颯
綦邁陟
魂嗩揪
鼾柞簪
吩煺揖
迄倆角
寒爐臬
驥機(jī)寓
梁煳镢
低碓萸
盤攣裂
癘后榍
萇筻揖
伴宓臁
臊搴坫
滁捍眷
霰澈躚
束祆洗
氏恭硐
島豺推
碉怯蜮
嶷覽迂
嘧鍘棒
爸蝙犖
芰肜剪
楷墉砟
弁襪客
專五霾
妲貲倩
諍沐三
陲捌砘
耦征雅
澹錫咯
龜墾獠
噶圓閥
麗轤菝
傳犄帥
唪劬酎
齒恬七
黟枉得
撅軻梵
菠怫鬃
操紛趔
韶元幬
匠桶梧
僭俱槊
孬用七
添加回答
舉報(bào)
0/150
提交
取消