今天在使用 CountDownLatch 的时候突然忘记怎么使用了,
然后就在网上找例子,但是找的解析明显有点太过于深入和不好理解,
我就整了个简单的例子做备注.
long size = 8;
//先构造一个 监测8个线程的对象
CountDownLatch countDownLatch = new CountDownLatch(new Long(size).intValue());
//构造一个有8个线程的线程池
ExecutorService executorService = Executors.newFixedThreadPool(new Long(size).intValue());
for (int i = 0; i < size; i++) {
int i1 = i;
//生成线程
executorService.execute(() -> {
try {
//此处写业务代码
} catch (Exception e) {
e.printStackTrace();
}finally {
//在 子线程结束的时候调用此方法,供CountDownLatch监测
countDownLatch.countDown();
}
});
}
//在此处调用wait()方法,等待8个线程结束
countDownLatch.await();
上海多云9℃ / 12℃
上海东南风0级优 22