public?class?ArmyRunnable?implements?Runnable?{
????volatile?boolean?keepRunning=true;
@Override
public?void?run()?{
???????while(keepRunning){
???? ???for(int?i=1;1<5;i++){
???? ???System.out.println(Thread.currentThread().getName()+"進(jìn)攻了對(duì)方["+i+"]");
???? ???Thread.yield();
???? ???}
???????}
???????System.out.println(Thread.currentThread().getName()+"進(jìn)攻結(jié)束");
???????
}
}
public?class?Stager?extends?Thread?{
????
public?void?run(){
ArmyRunnable?Dynasty?=new?ArmyRunnable();
ArmyRunnable?Revolt=new?ArmyRunnable();
Thread?armyDynasty=new?Thread(Dynasty,"隋軍");
Thread?armyRevolt=new?Thread(Revolt,"農(nóng)民軍");
armyDynasty.start();
armyRevolt.start();
try?{
Thread.sleep(5000);
}?catch?(InterruptedException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
?Dynasty.keepRunning=false;
?Revolt.keepRunning=false;
?try?{
armyRevolt.join();
}?catch?(InterruptedException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
System.out.println("當(dāng)雙方激戰(zhàn)正酣,半路殺出個(gè)程咬金");
Thread?mrchen=new?KeyPersonThread();
mrchen.setName("程咬金");
System.out.println("程咬金的理想是結(jié)束戰(zhàn)爭,使百姓安居樂業(yè)");
?Dynasty.keepRunning=false;
?Revolt.keepRunning=false;
?try?{
Thread.sleep(2000);
}?catch?(InterruptedException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
mrchen.start();
try?{
mrchen.join();
}?catch?(InterruptedException?e)?{
//?TODO?Auto-generated?catch?block
e.printStackTrace();
}
???System.out.println("程咬金實(shí)現(xiàn)了他的夢(mèng)想");
}
/**
?*?@param?args
?*/
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
????new?Stager().start();
}
}
2016-02-26
你ArmyRunnable這個(gè)類里,for循環(huán)i<5,寫成1<5,成死循環(huán)了