溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Java中怎么實(shí)現(xiàn)join線程操作

發(fā)布時(shí)間:2021-07-27 16:39:34 來源:億速云 閱讀:200 作者:Leah 欄目:編程語言

Java中怎么實(shí)現(xiàn)join線程操作,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

一 點(diǎn)睛

Tread提供了讓一個(gè)線程等待另外一個(gè)線程完成的方法——join()方法。當(dāng)在某個(gè)程序執(zhí)行流中調(diào)用其他線程的join()方法時(shí),調(diào)用線程將被阻塞,直到被join()方法加入的join線程執(zhí)行完后為止。

join()方法通常由使用線程的程序調(diào)用,以將大問題劃分成許多小問題,每個(gè)小問題分配一個(gè)線程。當(dāng)所有小問題都得到處理后,再調(diào)用主線程來進(jìn)一步操作。

二 代碼

public class JoinThread extends Thread{   // 提供一個(gè)有參數(shù)的構(gòu)造器,用于設(shè)置該線程的名字   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   {      // 啟動(dòng)子線程      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é)束才會(huì)向下執(zhí)行           jt.join();        }        System.out.println(Thread.currentThread().getName()           + " " + i);      }   }}

三 運(yùn)行結(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 當(dāng)i為20時(shí),main線程開始等待“被Join的線程”執(zhí)行完成,此時(shí)“被Join的線程”和“新線程”并發(fā)執(zhí)行。

3 當(dāng)“被Join的線程”執(zhí)行完成,main線程繼續(xù)運(yùn)行,此時(shí)“main”和“新線程”并發(fā)執(zhí)行。

看完上述內(nèi)容,你們掌握J(rèn)ava中怎么實(shí)現(xiàn)join線程操作的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI