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

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

為什么System.out.println("正當雙方激戰正酣,半路殺出了個程咬金");和System.out.println("程咬金的理想就是結束戰爭,使百姓安居樂業!");中間還會有進攻啊 線程不是sleep了嗎

為什么System.out.println("正當雙方激戰正酣,半路殺出了個程咬金");和System.out.println("程咬金的理想就是結束戰爭,使百姓安居樂業!");中間還會有進攻啊 線程不是sleep了嗎


正在回答

5 回答

我來挖墳啦,首先戰爭(進程)是動態的一直持續的,不會因為程咬金的出場而停止。

但是!如果想要凸顯出程咬金的心理,而整個舞臺停止是很簡單滴~

??Thread?mrCheng?=?new?KeyPersonThread();		
??mrCheng.setName("程咬金");
????try{
????????Thread.sleep(600);
????????System.out.println("--正當雙方戰況焦灼,半路突然殺出個程咬金...");
????????Thread.sleep(1000);
????????System.out.println("--程咬金的理想就是推翻昏庸無能的皇帝。");
????????Thread.sleep(1500);
????}?catch?(InterruptedException?e1)?{
????????e1.printStackTrace();
????}
??mrCheng.start();


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

不懂,為什么

armyTaskOfSuiDynasty.keepRunning?=?false;
armyTaskOfRevolt.keepRunning?=?false;

之后還會繼續執行for循環里面的內容,而不是直接打印“xxx結束了戰斗”。

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

樓上正解

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

因為執行 sleep() 的進程是主線程 Stage,目的是從兩個軍隊啟動線程開始

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

到程咬金出現

System.out.println("正當雙方激戰正酣,半路殺出了個程咬金");

之間,留有時間給軍隊雙方執行各自線程 run() 方法里的 for 循環。這個 Stage 線程里的 sleep() 方法對兩個軍隊線程沒有任何作用。所以,當 Stage 線程執行到

System.out.println("正當雙方激戰正酣,半路殺出了個程咬金");

System.out.println("程咬金的理想就是結束戰爭,使百姓安居樂業!");

之間時,兩個軍隊的線程并沒有被暫停,而是繼續執行各自 for 循環里的內容。

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

慕粉4279355

第一句“因為執行 sleep() 的進程”應該改成“因為執行 sleep() 的線程”
2016-12-03 回復 有任何疑惑可以回復我~
#2

慕粉4279355

“留有時間給軍隊雙方”的意思是,Stage 線程進入 sleep 狀態,在給定時間(50毫秒)內該線程不執行任何代碼
2016-12-03 回復 有任何疑惑可以回復我~
#3

慕瓜7073846

有沒有可能到戰斗結束,農民軍進攻不到5次
2018-08-15 回復 有任何疑惑可以回復我~

System.out.println("正當雙方激戰正酣,半路殺出了個程咬金");? 復制錯了吧

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

舉報

0/150
提交
取消

為什么System.out.println("正當雙方激戰正酣,半路殺出了個程咬金");和System.out.println("程咬金的理想就是結束戰爭,使百姓安居樂業!");中間還會有進攻啊 線程不是sleep了嗎

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

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

幫助反饋 APP下載

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

公眾號

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