为什么根本停不下来!!!
package com.imooc.play;
//军队线程,模拟作战双方的行为
public class Army implements Runnable {
volatile boolean keepRunning = true;// volatile保证线程可以正确读取其他线程写入的该值
public void run() {
while (keepRunning = true) {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "第"
+ (i + 1) + "次进攻对方");
Thread.yield();// 让出处理器时间,下次该谁进攻还不一定
}
}
System.out.println(Thread.currentThread().getName()+"战斗结束了!!");
}
}
package com.imooc.play;
/**
* 隋唐演义的大戏舞台
*
* @author cc
*
*/
public class Stage extends Thread {
public void run() {
Army army1 = new Army();
Army army2 = new Army();
// 使用runnable接口创建线程
Thread army1Thread = new Thread(army1, "隋军");
Thread army2Thread = new Thread(army2, "农民起义军");
army1Thread.start();
army2Thread.start();
try {
Thread.sleep(50);// 舞台线程休眠
} catch (InterruptedException e) {
e.printStackTrace();
}
army1.keepRunning = false;
army2.keepRunning = false;
try {
army1Thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new Stage().start();
}
}