91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

如何使用java的CountDownLatch線程計數器

發布時間:2021-11-15 09:44:39 來源:億速云 閱讀:180 作者:iii 欄目:大數據

本篇內容主要講解“如何使用java的CountDownLatch線程計數器”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何使用java的CountDownLatch線程計數器”吧!

CountDownLatch的使用

概念

countDownLatch這個類使一個線程等待其他線程各自執行完畢后再執行。

countDownLatch是通過一個計數器來實現的,計數器的初始值是線程的數量。每當一個線程執行完畢后,計數器的值就-1,當計數器的值為0時,表示所有線程都執行完畢,然后在閉鎖上等待的線程就可以恢復工作了。

使用場景

在一些時候由于數據庫連表查詢過于緩慢,并且無法在數據庫sql層進行優化,這時我們需要在代碼中使用線程去分頁查詢數據,多個線程都執行完畢后將數據封裝進一個list再進行返回,這時需要保證所有線程執行完畢后才能返回。

CountDownLatch的使用

// 首先創建一個線程計數器 構造參數為線程數量
CountDownLatch countDownLatch = new CountDownLatch(3);

// 創建一個結果集合
List<> list = new ArrayList<>();

// 循環分頁查詢
for (int i = 1; i <= 3; i++) {
    // executorService 是一個線程池對象,這里直接使用了,也可以通過new Thread(){ public void run() }.start();匿名內部類方式創建線程
    executorService.execute(() -> {
        // 調用查詢
        List<> list1 = mapper.find(i * 10, 10);
        // 將結果添加到集合中
        list.addAll(list1);
        // 執行完畢調用線程計數器-1 方法
        countDownLatch.countDown();
    });
}

try {
    // 調用await()方法的線程會被掛起,它會等待直到count值為0才繼續執行
    countDownLatch.await();
    System.out.println("返回數據添加完成");
} catch (Exception e) {
    e.printStackTrace();
}

CountDownLatch的所有方法

// countDownLatch類中只提供了一個構造器 count為計數值
public CountDownLatch(int count){};

// 調用await()方法的線程會被掛起,它會等待直到count值為0才繼續執行
public void await() throws InterruptedException {};
// 和await()類似,只不過等待一定的時間后count值還沒變為0的話就會繼續執行
public boolean await(long timeout, TimeUnit unit) throws InterruptedException {};
// 將count值減1
public void countDown() {};
// 返回當前計數
public long getCount(){};
// 返回計數器標識和當前計數
public String toString(){};

到此,相信大家對“如何使用java的CountDownLatch線程計數器”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

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

AI

五原县| 黔南| 拉萨市| 马尔康县| 七台河市| 娄烦县| 大悟县| 谢通门县| 白河县| 诸城市| 那坡县| 蓬莱市| 石屏县| 深水埗区| 无极县| 通州区| 八宿县| 无棣县| 晋州市| 车险| 五莲县| 灵宝市| 张北县| 梓潼县| 女性| 滨州市| 哈密市| 克山县| 峨眉山市| 阳城县| 湘潭县| 盐亭县| 龙门县| 泾阳县| 突泉县| 松溪县| 海南省| 文山县| 南江县| 长宁县| 长顺县|