项目中,代码涉及到对数据的处理,每条数据之间互不影响,为了更高效的执行数据处理,在代码中年引入了线程池,使用了CountDownLatch来进行任务的并行处理。
1、概念
CountDownLatch可以使一个获多个线程等待其他线程各自执行完毕后再执行
2、常用方法
CountDownLatch(int count); //构造方法,创建一个值为count 的计数器。
await();//阻塞当前线程,将当前线程加入阻塞队列。
await(long timeout, TimeUnit unit);//在timeout的时间之内阻塞当前线程,时间一过则当前线程可以执行,
countDown();//对计数器进行递减1操作,当计数器递减至0时,当前线程会去唤醒阻塞队列里的所有线程。
3、使用场景
关于CountDownLatch的使用场景,主要分为两种,一种情况是多个线程同时进行任务处理,主线程等待任务完成,进行下一步;一种情况是多个线程之间需要互相等待,某个节点共同触发,一起执行。第一种情况常见的是服务的启动,一个主线程需要等待其他任务完成,然后再最终完成服务的启动;