亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

線程join

老師您好,我去掉了舞臺中軍隊停止等待程咬金join的方法,運行以后發現只有主線程停止執行,其它的子線程會繼續執行,是不是join方法只會阻塞主線程的執行而不會影響其它子線程的執行呢?

正在回答

2 回答

你的理解很對:當某個線程使用join()方法加入到另一個線程時,另一個線程會等待該線程執行完畢后再繼續執行。

程咬金線程通過join()方法加入到舞臺線程,所以只有舞臺線程會等待。隋軍和農民軍線程的結束,是在舞臺線程中加入armyTaskOfSuiDynasty.keepRunning = false;??armyTaskOfRevolt.keepRunning = false;然后舞臺線程又sleep(2000),讓隋軍和農民軍線程結束最后一輪(while()循環),讓程咬金線程獨自執行。

2 回復 有任何疑惑可以回復我~
#1

窗外有個藍藍天 提問者

非常感謝!
2015-08-05 回復 有任何疑惑可以回復我~

這樣分清當前線程。當前軍隊線程正在執行,在舞臺里面通過軍隊線程上調用join就是講舞臺阻塞,等待軍隊完成。

一下是Oracle的文檔說明,你可以體會一下。

Joins

The?join?method allows one thread to wait for the completion of another. If?t?is a?Thread?object whose thread is currently executing,

t.join();

causes the current thread to pause execution until?t's thread terminates.?


1 回復 有任何疑惑可以回復我~
#1

hongchun

老師,關于這方面 我也有問題 你看我說的執行的整個過程對不對 首先舞臺線程是主線程,軍隊線程和關鍵人物線程是子線程 Stage執行→軍隊線程執行(1、此過程是不是可以理解為Stage線程在等待Army線程結束?)→Stage遇到keep=false,Army線程結束→關鍵人物線程執行(2、此過程中,Army線程已經結束,Stage線程等待KeyPerson線程結束)→Keyperson線程結束→主線程結束
2015-12-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號