亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中join線程操作實(shí)例分析

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

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

一 點(diǎn)睛

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

join()方法通常由使用線程的程序調(diào)用,以將大問(wèn)題劃分成許多小問(wèn)題,每個(gè)小問(wèn)題分配一個(gè)線程。當(dāng)所有小問(wèn)題都得到處理后,再調(diào)用主線程來(lái)進(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  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

四 說(shuō)明

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í)行。

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

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

相關(guān)文章

  • 詳解在Spring Boot中使用Https

    詳解在Spring Boot中使用Https

    本篇文章主要介紹了詳解在Spring Boot中使用Https,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Springboot MDC+logback實(shí)現(xiàn)日志追蹤的方法

    Springboot MDC+logback實(shí)現(xiàn)日志追蹤的方法

    MDC(Mapped Diagnostic Contexts)映射診斷上下文,該特征是logback提供的一種方便在多線程條件下的記錄日志的功能,這篇文章主要介紹了Springboot MDC+logback實(shí)現(xiàn)日志追蹤的方法,需要的朋友可以參考下
    2024-04-04
  • 解決mybatis-plus自定義xml的坑

    解決mybatis-plus自定義xml的坑

    這篇文章主要介紹了解決mybatis-plus自定義xml的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java微信延遲支付的實(shí)現(xiàn)示例

    java微信延遲支付的實(shí)現(xiàn)示例

    最近在面試的過(guò)程中總會(huì)出現(xiàn)一些關(guān)于微信支付延遲返回結(jié)果的處理方式的問(wèn)題,本文主要介紹了java微信延遲支付的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • Spring Data JPA 如何使用QueryDsl查詢并分頁(yè)

    Spring Data JPA 如何使用QueryDsl查詢并分頁(yè)

    這篇文章主要介紹了Spring Data JPA 如何使用QueryDsl查詢并分頁(yè),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 解決 java.lang.NoSuchMethodError的錯(cuò)誤

    解決 java.lang.NoSuchMethodError的錯(cuò)誤

    這篇文章主要介紹了解決 java.lang.NoSuchMethodError的錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 使用svn管理Maven項(xiàng)目的方法步驟

    使用svn管理Maven項(xiàng)目的方法步驟

    這篇文章主要介紹了使用svn管理Maven項(xiàng)目的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • java線程并發(fā)blockingqueue類使用示例

    java線程并發(fā)blockingqueue類使用示例

    BlockingQueue是一種特殊的Queue,若BlockingQueue是空的,從BlockingQueue取東西的操作將會(huì)被阻斷進(jìn)入等待狀態(tài)直到BlocingkQueue進(jìn)了新貨才會(huì)被喚醒,下面是用BlockingQueue來(lái)實(shí)現(xiàn)Producer和Consumer的例子
    2014-01-01
  • 解決eclipse中maven引用不到已經(jīng)存在maven中jar包的問(wèn)題

    解決eclipse中maven引用不到已經(jīng)存在maven中jar包的問(wèn)題

    這篇文章主要介紹了解決eclipse中maven引用不到已經(jīng)存在maven中jar包的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • 詳解Intellij IDEA中.properties文件中文顯示亂碼問(wèn)題的解決

    詳解Intellij IDEA中.properties文件中文顯示亂碼問(wèn)題的解決

    這篇文章主要介紹了詳解Intellij IDEA中.properties文件中文顯示亂碼問(wèn)題的解決,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評(píng)論