中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中多線程同步類 CountDownLatch

發布時間:2020-10-17 00:36:33 來源:腳本之家 閱讀:152 作者:行者無疆-ITer 欄目:編程語言

在多線程開發中,常常遇到希望一組線程完成之后在執行之后的操作,java提供了一個多線程同步輔助類,可以完成此類需求:

類中常見的方法:

Java中多線程同步類 CountDownLatch

其中構造方法:

CountDownLatch(int count) 參數count是計數器,一般用要執行線程的數量來賦值。

long getCount():獲得當前計數器的值。

void countDown():當計數器的值大于零時,調用方法,計數器的數值減少1,當計數器等數零時,釋放所有的線程。

void await():調所該方法阻塞當前主線程,直到計數器減少為零。

代碼例子:

線程類:

import java.util.concurrent.CountDownLatch;
public class TestThread extends Thread{
CountDownLatch cd;
String threadName;
public TestThread(CountDownLatch cd,String threadName){
 this.cd=cd;
 this.threadName=threadName;

}
@Override
public void run() {
 System.out.println(threadName+" start working...");
 dowork();
 System.out.println(threadName+" end working and exit...");
 cd.countDown();//告訴同步類完成一個線程操作完成

}
private void dowork(){
 try {
 Thread.sleep(2000);
 System.out.println(threadName+" is working...");
 } catch (InterruptedException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }

}

}

測試類:

import java.util.concurrent.CountDownLatch;
public class TsetCountDownLatch {

 public static void main(String[] args) {
 try {
  CountDownLatch cd = new CountDownLatch(3);// 表示一共有三個線程
  TestThread thread1 = new TestThread(cd, "thread1");
  TestThread thread2 = new TestThread(cd, "thread2");
  TestThread thread3 = new TestThread(cd, "thread3");
  thread1.start();
  thread2.start();
  thread3.start();
  cd.await();//等待所有線程完成
  System.out.println("All Thread finishd");
 } catch (InterruptedException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
}

輸出結果:

 thread1 start working...
 thread2 start working...
 thread3 start working...
 thread2 is working...
 thread2 end working and exit...
 thread1 is working...
 thread3 is working...
 thread3 end working and exit...
 thread1 end working and exit...
 All Thread finishd

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

香河县| 乡宁县| 阜宁县| 昌吉市| 库尔勒市| 铜山县| 五指山市| 海宁市| 治县。| 宁津县| 体育| 广安市| 平遥县| 天全县| 托克逊县| 平阳县| 咸丰县| 荣昌县| 阿图什市| 沁源县| 喀喇沁旗| 苍南县| 南安市| 潍坊市| 泰安市| 宁国市| 黑龙江省| 阿瓦提县| 涿州市| 双柏县| 咸丰县| 华安县| 峨山| 百色市| 和龙市| 汽车| 宁陵县| 大安市| 太保市| 潜江市| 平顺县|