使用countdownlatch拆分任務踩坑記錄

2021-09-28 17:31:06 字數 829 閱讀 4423

1.因有個需求, 此需求是需要單查資料才可以查詢準確的資料,但是前台引數是 按月份查詢,所以需要查詢月區間的每天的資料

2.使用countdownlatch

3.使用 private static executorservice executorservice = executors.newfixedthreadpool(5);

4.舉例 8.1 - 9.30號,檢視區間有多少天, 分割成5份,最後乙份加上餘數

6.每個執行緒中查詢的物件,不可通用

7.舉例

//例子

bigdecimal sta = new bigdecimal(start.gettime());

executorservice.execute(new runnable()

countdownlatch.countdown();

}});

//對照

bomberdistributionfroms finalbomberdistributionfroms = bomberdistributionfroms2;

bigdecimal sta8 = new bigdecimal(start2.gettime());

executorservice.execute(new runnable()

countdownlatch.countdown();

}});

//最後 主線程等待

try catch (interruptedexception e)

新增資料的list需要用 sync的list

java 多執行緒 CountDownLatch用法

countdownlatch,乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。主要方法 public countdownlatch int count public void countdown public void await throws interr...

java多執行緒CountDownLatch用法

countdownlatch,乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。主要方法 public countdownlatch int count public voidcountdown public voidawait throws interrup...

執行緒同步工具之CountDownLatch

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