Java中怎么實現(xiàn)join線程操作,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供阿里地區(qū)網(wǎng)站建設、阿里地區(qū)做網(wǎng)站、阿里地區(qū)網(wǎng)站設計、阿里地區(qū)網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、阿里地區(qū)企業(yè)網(wǎng)站模板建站服務,10余年阿里地區(qū)做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
一 點睛
Tread提供了讓一個線程等待另外一個線程完成的方法——join()方法。當在某個程序執(zhí)行流中調(diào)用其他線程的join()方法時,調(diào)用線程將被阻塞,直到被join()方法加入的join線程執(zhí)行完后為止。
join()方法通常由使用線程的程序調(diào)用,以將大問題劃分成許多小問題,每個小問題分配一個線程。當所有小問題都得到處理后,再調(diào)用主線程來進一步操作。
二 代碼
public class JoinThread extends Thread{ // 提供一個有參數(shù)的構(gòu)造器,用于設置該線程的名字 public JoinThread(String name) { super(name); } // 重寫run()方法,定義線程執(zhí)行體 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線程調(diào)用了jt線程的join()方法,main線程 // 必須等jt執(zhí)行結(jié)束才會向下執(zhí)行 jt.join(); } System.out.println(Thread.currentThread().getName() + " " + i); } }}
三 運行結(jié)果
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線程和新線程并發(fā)執(zhí)行。
2 當i為20時,main線程開始等待“被Join的線程”執(zhí)行完成,此時“被Join的線程”和“新線程”并發(fā)執(zhí)行。
3 當“被Join的線程”執(zhí)行完成,main線程繼續(xù)運行,此時“main”和“新線程”并發(fā)執(zhí)行。
看完上述內(nèi)容,你們掌握Java中怎么實現(xiàn)join線程操作的方法了嗎?如果還想學到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!