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

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

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

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

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

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

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

代碼如下:

import java.util.concurrent.CountDownLatch;
public class Counter {
  public static int count = 0;
  static CountDownLatch cdl=new CountDownLatch(1000);//這里的數(shù)字,開啟幾個(gè)線程就寫幾
  public synchronized static void inc() throws InterruptedException{//注意,如果不加上synchronized,由于并發(fā)寫入,結(jié)果會(huì)小于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相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

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

相關(guān)文章

  • Java 存儲(chǔ)模型和共享對(duì)象詳解

    Java 存儲(chǔ)模型和共享對(duì)象詳解

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

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

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

    關(guān)于Spring3 + Mybatis3整合時(shí)多數(shù)據(jù)源動(dòng)態(tài)切換的問題

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

    Springboot中的三個(gè)基本架構(gòu)

    這篇文章主要介紹了Springboot中的三個(gè)基本架構(gòu),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • 實(shí)體類或?qū)ο笮蛄谢瘯r(shí),忽略為空屬性的操作

    實(shí)體類或?qū)ο笮蛄谢瘯r(shí),忽略為空屬性的操作

    這篇文章主要介紹了實(shí)體類或?qū)ο笮蛄谢瘯r(shí),忽略為空屬性的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • httpclient的disableConnectionState方法工作流程

    httpclient的disableConnectionState方法工作流程

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

    SpringBoot+MyBatis+AOP實(shí)現(xiàn)讀寫分離的示例代碼

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

    Java RandomAccessFile 指定位置實(shí)現(xiàn)文件讀取與寫入

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

    Java三種移位運(yùn)算符原理解析

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

    Java中synchronized鎖的深入理解

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

最新評(píng)論