CountDownLatch
CountDownLatch(闭锁/倒计时锁)用于多线程同步协作,等待所有线程完成倒计时(一个或多个线程,等待其他多个线程完成某件事后才能执行)
- 其中构造参数用来初始化等待计数值
- await方法用来等待计数归零
- countDown方法用来让计数减一
多线程使用场景一(es数据批量导入)
项目上线之前,我们需要把数据库中的数据一次性的同步到es索引库中,但当时的数据好像是1000万左右,一次性读取数据肯定不行(oom),当时我想到的就是使用线程池的方式导入,利用CountDownLatch来控制,就能避免一次性加载过多数据,造成内存溢出。
多线程使用场景二(数据汇总)
在一个电商网站中,用户下单之后,需要查询数据,数据包含三部分:订单信息、包含的商品、物流信息,者三块信息都在不同的微服务中,进行实现,我们如何完成这个业务?
多线程使用场景三(异步调用)
要保存用户的搜索记录---异步调用