為什么根本停不下來?。。?/h1>
package com.imooc.play;
//軍隊線程,模擬作戰(zhàn)雙方的行為
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()+"戰(zhàn)斗結束了??!");
?}
}
package com.imooc.play;
/**
?* 隋唐演義的大戲舞臺
?*
?* @author cc
?*
?*/
?public class Stage extends Thread {
?public void run() {
??Army army1 = new Army();
??Army army2 = new Army();
??// 使用runnable接口創(chuàng)建線程
??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();
?}
}
package com.imooc.play;
//軍隊線程,模擬作戰(zhàn)雙方的行為
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()+"戰(zhàn)斗結束了??!");
?}
}
package com.imooc.play;
/**
?* 隋唐演義的大戲舞臺
?*
?* @author cc
?*
?*/
?public class Stage extends Thread {
?public void run() {
??Army army1 = new Army();
??Army army2 = new Army();
??// 使用runnable接口創(chuàng)建線程
??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();
?}
}
2016-07-30
Army類中while 循環(huán)的判斷應該是==