欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中join線程操作實例分析

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

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

一 點睛

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

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

二 代碼

public class JoinThread extends Thread
{
   // 提供一個有參數的構造器,用于設置該線程的名字
   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線程調用了jt線程的join()方法,main線程
           // 必須等jt執(zhí)行結束才會向下執(zhí)行
           jt.join();
        }
        System.out.println(Thread.currentThread().getName()
           + " " + i);
      }
   }
}

三 運行結果

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相關內容感興趣的讀者可查看本站專題:《Java進程與線程操作技巧總結》、《Java數據結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

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

相關文章

  • 詳解在Spring Boot中使用Https

    詳解在Spring Boot中使用Https

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

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

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

    解決mybatis-plus自定義xml的坑

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

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

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

    Spring Data JPA 如何使用QueryDsl查詢并分頁

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

    解決 java.lang.NoSuchMethodError的錯誤

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

    使用svn管理Maven項目的方法步驟

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

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

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

    解決eclipse中maven引用不到已經存在maven中jar包的問題

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

    詳解Intellij IDEA中.properties文件中文顯示亂碼問題的解決

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

最新評論