如果把keepRunning=false放在 程咬金大杀四方之后 join怎么理解?

来源:2-5 Java线程-隋唐演义实战开发---关键先生

Goldberg

2016-04-26 12:42

join是指让其他线程等待当前线程终止。
如果

Thread k3 = new keyThread();//程咬金
k3.start();
k3.join();
隋军.keepRunning = false;
民兵.keepRunning = false;

这么写,随军冲锋和民兵冲锋会贯穿在程咬金的活动中间,看不出来join的效果啊

写回答 关注

2回答

  • meersun
    2016-04-26 19:07:23
    已采纳

    在A线程中调用了B线程的join方法,意思是直到线程A执行完毕后才会执行线程B,所以这里的join只对舞台线程起作用。对起义军和隋军线程,程咬金的join方法根本不起作用。我试了下,把keepRunning设为false的语句注释掉,发现即使加上chengyaojin.join(),这两个线程也不会停止,会一直运行下去。

    寒食君Tal...

    对答主的回答不太理解。“在A线程中调用了B线程的join方法,意思是直到线程A执行完毕后才会执行线程B”这句话。在Stage线程中调用了Cheng线程的join方法,意思是直到Stage执行完后才会执行Cheng线程? 是不是反了?还是我理解错了?

    2016-08-14 19:24:17

    共 2 条回复 >

  • 宝宝涛涛
    2016-04-26 14:14:14

    我的理解是这里执行join方法的线程是stage线程,所以只有stage线程会停止,等待程咬金线程的完成,而因为stage线程的停止,keepRunning=false暂时不会执行,所以隋军和农民起义军两个线程不会停止

深入浅出Java多线程

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

186088 学习 · 464 问题

查看课程

相似问题