一、說明
工作中常有這樣的場景,併發執行一些任務,並等待所有的任務執行完成,進行後續處理,這裏總結了幾種方法用於滿足這種業務場景。
二、閉鎖方式
閉鎖是Java早期提供的一種併發鎖,其特點是每個任務頒發一個令牌,任務執行完成釋放令牌,主進程可以一直阻塞等待所有的令牌被釋放,當所有令牌都被釋放後,主進程可以繼續執行。依據閉鎖的這種特效可以滿足上面的任務場景。
public class CountDownLatchService {
private final CountDownLatch lock;
private final ExecutorService executorService;
private List<Long> aList;
public CountDownLatchServ