為什么我的軍隊在線程開始執(zhí)行之后沒有while循環(huán)?
public class ArmRunnable implements Runnable {
/**
?* 軍隊runnable
?* 模擬雙發(fā)作戰(zhàn)的行為
?*?
?*/
volatile boolean keepRuning=true;
@Override
public void run() {
while(keepRuning){
//發(fā)動5連擊
for(int i=0;i<5;i++){
System.out.println(Thread.currentThread().getName()+"進(jìn)攻對方["+i+"]");
//讓出了處理器時間,下次該誰進(jìn)攻還不一定呢!
Thread.yield();
}
}
System.out.println(Thread.currentThread().getName()+"結(jié)束了戰(zhàn)斗!");
}
public class Stage extends Thread {
private final Object obj=new Object();
public void run(){
// TODO 自動生成的方法存根
System.out.println("隋唐演義上演,大幕徐徐拉開");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
//軍隊登場
ArmRunnable suijun=new ArmRunnable();
ArmRunnable ?qiyijun=new ArmRunnable();
?
//構(gòu)建兩個線程
Thread sui=new Thread(suijun,"隋軍");
Thread nong=new Thread(qiyijun,"農(nóng)民起義軍");
sui.start();
nong.start();
suijun.keepRuning=false;
qiyijun.keepRuning=false;
不知道我又錯在哪里了?
2016-09-26
因為隋朝軍隊,農(nóng)民起義軍,和舞臺進(jìn)程優(yōu)先級相同,
軍隊沒有執(zhí)行while循環(huán)是因為先執(zhí)行了suijun.keepRuning = false;和qiyijun.keepRuning=false;