/**
* 军队线程
* 模拟作战双方的行为
* @author gent
*
*/
public class ArmyRunnable implements Runnable{
volatile boolean keepRunning = true;
@Override
public void run() {
while (keepRunning) {
for(int i=0;i<5;i++){
System.out.println(Thread.currentThread().getName()+"进攻对方["+i+"]次");
Thread.yield();
}
}
System.out.println(Thread.currentThread().getName()+"结束了战斗!");
}
}
/**
* 关键人物类
* @author gent
*
*/
public class KeyPersonThread extends Thread{
public void run(){
System.out.println(Thread.currentThread().getName()+"开始了战斗");
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+"左突右杀,攻击隋军");
}
System.out.println(Thread.currentThread().getName()+"结束了战斗");
}
}
/**
* 隋唐演绎舞台
* @author gent
*
*/
public class Stage extends Thread {
public void run(){
System.out.println("欢迎观看隋唐演义");
try {
Thread.sleep(5000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
ArmyRunnable armyTaskOfDynasty = new ArmyRunnable();
ArmyRunnable armyTaskOfRevolt = new ArmyRunnable();
Thread armyOfSuiDynasty = new Thread(armyTaskOfDynasty,"隋军");
Thread armyOfRevolt = new Thread(armyTaskOfRevolt,"农民起义军");
armyOfSuiDynasty.start();
armyOfRevolt.start();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("正当双方激战正酣,半路杀出个程咬金");
Thread mrCheng = new KeyPersonThread();
mrCheng.setName("程咬金");
System.out.println("程咬金的理想就是结束战争,使百姓安居乐业!");
armyTaskOfDynasty.keepRunning=false;
armyTaskOfRevolt.keepRunning=false;
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
mrCheng.start();
try {
mrCheng.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("战争结束,人民安居乐业,程先生实现了人生理想!");
System.out.println("演出结束");
}
public static void main(String[] args) {
new Stage().start();
}
}