最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中join線程操作實例分析

 更新時間:2019年09月16日 10:21:00   作者:cakincqm  
這篇文章主要介紹了Java中join線程操作,結(jié)合實例形式分析了java使用join方法操作線程的相關(guān)原理與實現(xiàn)技巧,需要的朋友可以參考下

本文實例講述了Java中join線程操作。分享給大家供大家參考,具體如下:

一 點睛

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

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

二 代碼

public class JoinThread extends Thread
{
   // 提供一個有參數(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
   {
      // 啟動子線程
      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  0
main  1
main  2
main  3
main  4
main  5
main  6
新線程  0
......
新線程  11
新線程  12
新線程  13
main  7
main  8
......
main  16
main  17
新線程  14
main  18
main  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
新線程  99
main  20
main  21
main  22
main  23

四 說明

1 程序開始是mian線程和新線程并發(fā)執(zhí)行。

2 當i為20時,main線程開始等待“被Join的線程”執(zhí)行完成,此時“被Join的線程”和“新線程”并發(fā)執(zhí)行。

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

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java進程與線程操作技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • 強烈推薦MyBatis?三種批量插入方式的比較

    強烈推薦MyBatis?三種批量插入方式的比較

    這篇文章主要介紹了強烈推薦MyBatis?三種批量插入方式的比較,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • idea如何解決commit代碼時一直code Analyze加載的問題

    idea如何解決commit代碼時一直code Analyze加載的問題

    文章介紹了解決Git提交代碼時出現(xiàn)codeAnalyze加載卡頓問題的方法,即關(guān)閉IDEA中的相關(guān)設(shè)置選項,作者分享個人經(jīng)驗,希望對大家有所幫助,并鼓勵支持腳本之家
    2025-01-01
  • 解決nacos報錯java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory的問題

    解決nacos報錯java.lang.ClassNotFoundException: com.netflix.

    這篇文章主要介紹了解決nacos報錯java.lang.ClassNotFoundException: com.netflix.config.DynamicPropertyFactory的問題,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • idea debug沒有force step into的問題解決

    idea debug沒有force step into的問題解決

    本文主要介紹了IDEA Debug中ForceStepInto按鈕消失的問題及解決方法,文中通過圖文介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10
  • 最新評論

    永嘉县| 肇庆市| 鄂温| 张家口市| 惠安县| 密山市| 城步| 宜章县| 濮阳市| 仁怀市| 嫩江县| 隆子县| 外汇| 无棣县| 上饶县| 安塞县| 呼玛县| 永嘉县| 多伦县| 饶河县| 南川市| 若尔盖县| 乳源| 黄龙县| 天峻县| 昌黎县| 岢岚县| 平泉县| 河西区| 峨边| 枝江市| 巫山县| 谷城县| 涞源县| 和田县| 焉耆| 彭泽县| 龙泉市| 望江县| 唐海县| 临颍县|