join函数是怎么起作用的?为什么放到keepRunning=false后面,放到前面进程就不会停止了

来源:2-4 Java线程-隋唐演义实战开发---军队

IRVLIN

2019-12-04 11:45

public class Stage extends Thread {	@Override	public void run() {		// TODO Auto-generated method stub		Army suiArmyTask = new Army();		Army rebelArmyTask = new Army();		Thread suiArmy = new Thread(suiArmyTask, "隋军");		Thread rebelArmy = new Thread(rebelArmyTask, "起义军");				suiArmy.start();		rebelArmy.start();		try {			Thread.sleep(5);		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		suiArmyTask.keepFighting = false;		rebelArmyTask.keepFighting = false;		try {			rebelArmy.join();		} catch (InterruptedException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}}


写回答 关注

1回答

  • Noidea_0
    2019-12-05 11:50:16

    放到前面就不会停止是指哪个线程不会停止

    IRVLIN

    就是将rebelArmy.join放到keepFighting=false前面,代码就会一直运行,两个Army线程不会停止。

    2019-12-05 18:39:45

    共 1 条回复 >

深入浅出Java多线程

带你一起深入浅出多线程,掌握基础,展望进阶路线

186088 学习 · 464 问题

查看课程

相似问题