您好,登錄后才能下訂單哦!
Java中怎么實現join線程操作,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一 點睛
Tread提供了讓一個線程等待另外一個線程完成的方法——join()方法。當在某個程序執行流中調用其他線程的join()方法時,調用線程將被阻塞,直到被join()方法加入的join線程執行完后為止。
join()方法通常由使用線程的程序調用,以將大問題劃分成許多小問題,每個小問題分配一個線程。當所有小問題都得到處理后,再調用主線程來進一步操作。
二 代碼
public class JoinThread extends Thread{ // 提供一個有參數的構造器,用于設置該線程的名字 public JoinThread(String name) { super(name); } // 重寫run()方法,定義線程執行體 public void run() { for (int i = 0; i < 100 ; i++ ) { System.out.println(getName() + " " + i); } } public static void main(String[] args)throws Exception { // 啟動子線程 new JoinThread("新線程").start(); for (int i = 0; i < 100 ; i++ ) { if (i == 20) { JoinThread jt = new JoinThread("被Join的線程"); jt.start(); // main線程調用了jt線程的join()方法,main線程 // 必須等jt執行結束才會向下執行 jt.join(); } System.out.println(Thread.currentThread().getName() + " " + i); } }}
三 運行結果
main 0main 1main 2main 3main 4main 5main 6新線程 0......新線程 11新線程 12新線程 13main 7main 8......main 16main 17新線程 14main 18main 19新線程 15新線程 16......新線程 31被Join的線程 0新線程 32被Join的線程 1新線程 33被Join的線程 2新線程 34被Join的線程 3新線程 35新線程 36新線程 37新線程 38新線程 39被Join的線程 4被Join的線程 5......被Join的線程 13被Join的線程 14新線程 40被Join的線程 15被Join的線程 16被Join的線程 17新線程 41新線程 42被Join的線程 18被Join的線程 19......被Join的線程 38被Join的線程 39新線程 43新線程 44新線程 45被Join的線程 40被Join的線程 41被Join的線程 42被Join的線程 43新線程 46新線程 47新線程 48......新線程 60新線程 61被Join的線程 44......被Join的線程 98被Join的線程 99新線程 62新線程 63......新線程 98新線程 99main 20main 21main 22main 23
四 說明
1 程序開始是mian線程和新線程并發執行。
2 當i為20時,main線程開始等待“被Join的線程”執行完成,此時“被Join的線程”和“新線程”并發執行。
3 當“被Join的線程”執行完成,main線程繼續運行,此時“main”和“新線程”并發執行。
看完上述內容,你們掌握Java中怎么實現join線程操作的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。