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

Java實現等待所有子線程結束后再執(zhí)行一段代碼的方法

 更新時間:2017年08月28日 11:12:45   作者:zwcwu31  
這篇文章主要介紹了Java實現等待所有子線程結束后再執(zhí)行一段代碼的方法,涉及java多線程的線程等待與執(zhí)行等相關操作技巧,需要的朋友可以參考下

本文實例講述了Java實現等待所有子線程結束后再執(zhí)行一段代碼的方法。分享給大家供大家參考,具體如下:

今天有一個需求是:在一個方法中開啟了一個子線程來執(zhí)行操作,返回值依賴于子線程的執(zhí)行結果,這樣如果要返回正確的值,就需要開啟子線程后

主線程等待子線程,然后子線程執(zhí)行結束后,主線程再繼續(xù)執(zhí)行。

主線程等待子線程需要用到:CountDownLatch

代碼如下:

import java.util.concurrent.CountDownLatch;
public class Counter {
  public static int count = 0;
  static CountDownLatch cdl=new CountDownLatch(1000);//這里的數字,開啟幾個線程就寫幾
  public synchronized static void inc() throws InterruptedException{//注意,如果不加上synchronized,由于并發(fā)寫入,結果會小于1000
    Thread.sleep(1);
    count++;
    cdl.countDown();
  }
  public static void main(String[] args) throws InterruptedException{
    for(int i = 0; i < 1000; i++){
      new Thread(new Runnable(){
        public void run() {
          // TODO Auto-generated method stub
          try {
            Counter.inc();
          } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
        }
      }
      ).start();
    }
    cdl.await();//主線程等待子線程執(zhí)行輸出
    System.out.println(count);
  }
}

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

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

相關文章

  • Java 存儲模型和共享對象詳解

    Java 存儲模型和共享對象詳解

    這篇文章主要介紹了Java 存儲模型和共享對象詳解的相關資料,對Java存儲模型,可見性和安全發(fā)布的問題是起源于Java的存儲結構及共享對象安全,需要的朋友可以參考下
    2017-03-03
  • java集合_淺談Iterable和Iterator的區(qū)別

    java集合_淺談Iterable和Iterator的區(qū)別

    下面小編就為大家?guī)硪黄猨ava集合_淺談Iterable和Iterator的區(qū)別。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • 關于Spring3 + Mybatis3整合時多數據源動態(tài)切換的問題

    關于Spring3 + Mybatis3整合時多數據源動態(tài)切換的問題

    這篇文章主要介紹了關于Spring3 + Mybatis3整合時多數據源動態(tài)切換的問題,需要的朋友可以參考下
    2017-04-04
  • Springboot中的三個基本架構

    Springboot中的三個基本架構

    這篇文章主要介紹了Springboot中的三個基本架構,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 實體類或對象序列化時,忽略為空屬性的操作

    實體類或對象序列化時,忽略為空屬性的操作

    這篇文章主要介紹了實體類或對象序列化時,忽略為空屬性的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • httpclient的disableConnectionState方法工作流程

    httpclient的disableConnectionState方法工作流程

    這篇文章主要為大家介紹了httpclient的disableConnectionState方法工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • SpringBoot+MyBatis+AOP實現讀寫分離的示例代碼

    SpringBoot+MyBatis+AOP實現讀寫分離的示例代碼

    高并發(fā)這個階段,肯定是需要做MySQL讀寫分離的。本文主要介紹了SpringBoot+MyBatis+AOP實現讀寫分離的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Java RandomAccessFile 指定位置實現文件讀取與寫入

    Java RandomAccessFile 指定位置實現文件讀取與寫入

    這篇文章主要介紹了Java RandomAccessFile 指定位置實現文件讀取與寫入的相關資料,需要的朋友可以參考下
    2017-01-01
  • Java三種移位運算符原理解析

    Java三種移位運算符原理解析

    這篇文章主要介紹了Java三種移位運算符原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Java中synchronized鎖的深入理解

    Java中synchronized鎖的深入理解

    這篇本文主要對Java中synchronized鎖進行深入理解,文中通過synchronized的優(yōu)化,synchronized的實現原理及synchronized的升級過程來介紹Java中synchronized鎖,感興趣的同學可以跟著小編一起來學習
    2023-05-05

最新評論