如果把keepRunning=false放在 程咬金大殺四方之后 join怎么理解?
join是指讓其他線程等待當前線程終止。
如果
Thread k3 = new keyThread();//程咬金
k3.start();
k3.join();
隋軍.keepRunning = false;
民兵.keepRunning = false;
這么寫,隨軍沖鋒和民兵沖鋒會貫穿在程咬金的活動中間,看不出來join的效果啊
join是指讓其他線程等待當前線程終止。
如果
Thread k3 = new keyThread();//程咬金
k3.start();
k3.join();
隋軍.keepRunning = false;
民兵.keepRunning = false;
這么寫,隨軍沖鋒和民兵沖鋒會貫穿在程咬金的活動中間,看不出來join的效果啊
2016-04-26
舉報
2016-04-26
在A線程中調用了B線程的join方法,意思是直到線程A執行完畢后才會執行線程B,所以這里的join只對舞臺線程起作用。對起義軍和隋軍線程,程咬金的join方法根本不起作用。我試了下,把keepRunning設為false的語句注釋掉,發現即使加上chengyaojin.join(),這兩個線程也不會停止,會一直運行下去。
2016-04-26
我的理解是這里執行join方法的線程是stage線程,所以只有stage線程會停止,等待程咬金線程的完成,而因為stage線程的停止,keepRunning=false暫時不會執行,所以隋軍和農民起義軍兩個線程不會停止