日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

JUC 之CountDownLatch工具類

作者:桂亭亭 更新時間: 2023-07-04 編程語言

目錄

什么是CountDownLatch?

一個示例看懂

思考這與join有什么1區別?


什么是CountDownLatch?

CountDownLatch是Java中的一個并發工具類,用于控制多個線程同時執行某個操作,在達到某個條件前等待,達到條件后再同時執行操作。

CountDownLatch中的計數器初始化為一個正整數,每當一個線程完成了自己的任務后,計數器的值就減1,直到計數器的值為0時,所有等待的線程才會被喚醒同時開始執行。

一個示例看懂

import java.util.concurrent.CountDownLatch;
 public class Example {
     public static void main(String[] args) {
        final CountDownLatch latch = new CountDownLatch(2);
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(1000);
                    System.out.println("Thread 1 completed.");
                    latch.countDown();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
         new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    Thread.sleep(2000);
                    System.out.println("Thread 2 completed.");
                    latch.countDown();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
         try {
            latch.await();
            System.out.println("All threads completed.");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

????????在這個示例中,我們創建了一個CountDownLatch對象,并將其初始化為2。然后我們創建了兩個線程,在每個線程中都執行了一些操作,在每個線程的內部調用了latch.countDown()方法來減少計數器的值。

????????最后,我們在主線程中調用latch.await()方法來等待計數器的值變為0,這樣所有的線程就可以同時執行其他的操作了。

最后輸出"All threads completed."。

思考這與join有什么1區別?

join的工作原理是:不停檢查thread是否存活,如果存活則讓當前線程永遠wait,直到thread線程終止,線程的this.notifyAll 就會被調用。

顯然join使用的場景肯定比CountDownLatch簡單,也就是說CountDownLatch更加的強大。

具體可看以下,不再贅述。

CountDownLatch理解一:與join的區別_countdownlatch和join_逐兔郎的博客-CSDN博客

原文鏈接:https://blog.csdn.net/qq_53679247/article/details/130872602

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新