CountDownLatch 併發測試

2021-08-14 13:24:23 字數 849 閱讀 8187

countdownlatch,乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。

主要方法

public countdownlatch(int count);

public voidcountdown();

public voidawait() throws interruptedexception

構造方法引數指定了計數的次數

countdown方法,當前執行緒呼叫此方法,則計數減一

awaint方法,呼叫此方法會一直阻塞當前執行緒,直到計時器的值為0

例子

public class countdownlatchdemo   

static class worker extends thread

public void run()

private void dowork() catch (interruptedexception e)

} }

}

輸出:worker zhang san do work begin at 2011-04-14 11:05:11

worker li si do work begin at 2011-04-14 11:05:11

worker zhang san do work complete at 2011-04-14 11:05:16

worker li si do work complete at 2011-04-14 11:05:19

all work done at 2011-04-14 11:05:19

使用CountDownLatch模擬高併發場景

通過countdownlatch的簡單應用和實現原理這篇部落格,可以簡單的了解到countdownlatch的作用。由此引申出使用countdownlatch模擬高併發場景的想法,作為乙個併發程式設計的計數器,我們是不是可以設想建立1000個執行緒,等所有的執行緒都建立完成後,countdownla...

多執行緒 CountDownLatch

countdownlatch 允許乙個或多個執行緒等待其他執行緒完成操作。應用場景 假如有這樣乙個需求,當我們需要解析乙個excel裡多個sheet的資料時,可以考慮使用多執行緒,每個執行緒解析乙個sheet裡的資料,等到所有的sheet都解析完之後,程式需要提示解析完成。在這個需求中,要實現主線程...

執行緒同步 CountDownLatch

應用場景 有乙個任務想要往下執行,但必須要等到其他的任務執行完畢後才可以繼續往下執行。假如我們這個想要繼續往下執行的任務呼叫乙個countdownlatch物件的await 方法,其他的任務執行完自己的任務後呼叫同乙個countdownlatch物件上的countdown 方法,這個呼叫await ...