啟動 sj1? nm1 兩個進程后,什么時候會修改keep值為false,是隨機的嗎public class JunDui implements Runnable{?//volatile保證了線程可以正確的訪問其他線程寫入的值??volatile boolean keep = true;?@Override?public void run() {??// TODO Auto-generated method stub??while (keep ) {???for (int i = 0; i < 5; i++) {????System.out.println(Thread.currentThread().getName()??????+"發動了"+(i+1)+"次攻擊");????//讓出了處理器時間????Thread.yield();???}???System.out.println(Thread.currentThread().getName()?????+"結束了攻擊");??}?}}public class Stage extends Thread {//舞臺?@Override?public void run() {??// TODO Auto-generated method stub??JunDui sj = new JunDui();??JunDui nm = new JunDui();????Thread sj1 = new Thread(sj,"隋軍");??Thread nm1 = new Thread(nm,"農民起義軍");????//啟動進程??sj1.start();??nm1.start();????//舞臺進程休眠??try {???Thread.sleep(50);??} catch (InterruptedException e) {???// TODO Auto-generated catch block???e.printStackTrace();??}????sj.keep = false;??nm.keep = false;????try {???sj1.join();??} catch (InterruptedException e) {???// TODO Auto-generated catch block???e.printStackTrace();??}?}
添加回答
舉報
0/150
提交
取消