日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CountDownLatch(线程计数器)

發(fā)布時間:2024/9/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CountDownLatch(线程计数器) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

CountDownLatch(線程計數(shù)器)

CountDownLatch 類位于 java.util.concurrent 包下,利用它可以實現(xiàn)類似計數(shù)器的功能。比如有一個任務(wù) A,它要等待其他 4 個任務(wù)執(zhí)行完畢之后才能執(zhí)行,此時就可以利用 CountDownLatch來實現(xiàn)這種功能了。

特點

  • countDownLatch這個類使一個線程等待其他線程各自執(zhí)行完畢后再執(zhí)行。
  • 是通過一個計數(shù)器來實現(xiàn)的,計數(shù)器的初始值是線程的數(shù)量。每當(dāng)一個線程執(zhí)行完畢后,計數(shù)器的值就-1,當(dāng)計數(shù)器的值為0時,表示所有線程都執(zhí)行完畢,然后在閉鎖上等待的線程就可以恢復(fù)工作了。

主要方法

//阻塞并等待計算歸零 public void await(); //阻塞一段時間,并等待計算歸零,如果超時就停止阻塞 public boolean await(long timeout, TimeUnit unit); //計數(shù)-1 public void countDown();

示例

public static void main(String[] args) {CountDownLatch countDownLatch = new CountDownLatch(2);new Thread(()->{try {System.out.println(Thread.currentThread().getName()+"---runing");Thread.sleep(1000);System.out.println(Thread.currentThread().getName()+"---finish");countDownLatch.countDown();} catch (InterruptedException e) {e.printStackTrace();}},"A").start();new Thread(()->{try {System.out.println(Thread.currentThread().getName()+"---runing");Thread.sleep(1000);System.out.println(Thread.currentThread().getName()+"---finish");countDownLatch.countDown();} catch (InterruptedException e) {e.printStackTrace();}},"B").start();System.out.println("主線程等待子線程執(zhí)行完畢");try {countDownLatch.await();} catch (InterruptedException e) {e.printStackTrace();}System.out.println("子線程執(zhí)行完畢");}

總結(jié)

以上是生活随笔為你收集整理的CountDownLatch(线程计数器)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。