CountDownLatch countDownLatch = new CountDownLatch(20);
//线程池的创建方式推荐使用ThreadPoolExecutor,这也是阿里官方推荐的方式,这样可以避免线程过多导致内存占用一直增加的问题
ExecutorService threadPool = new ThreadPoolExecutor(
20,
20,
1,
TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>());
threadPool.submit(() -> {
try {
//后续在此处进行业务处理
} finally {
countDownLatch.countDown();
}
});
//关闭线程处理
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
//关闭线程池
threadPool.shutdown();
CountDownLatch允许一个或者多个线程去等待其他线程完成操作。
CountDownLatch接收一个int型参数,表示要等待的工作线程的个数。