前言:
最近在工作中遇到了与线程相关的问题,对于线程运用不太熟练的我,最近可是在线程的知识海洋里奋力挣扎,最后发现哥伦布又探索出一块新大陆。知识无穷无尽,每天进步一点点,每天吸收一点点,让自己知道:我在进步。
问题由来:
最近在做数据压缩的功能,需要压缩将近3个月的数据,通过线程池创建线程的方式进行压缩,但是我想在所有的线程任务执行完毕之后再给前端返回,压缩任务已完成,在这之前我做过很多控制,去做这个返回,结果发现,只要是有一个线程完成了任务,它就会返回执行完毕,其实在后台其他线程还是在执行任务的,而且其中有任务报错任然返回执行成功,显然这种返回方式是不正确的。那么如何让所有任务全部执行完毕之后再返回,于是CountDownLatch出现了。
关键词介绍:
何谓CountDownLatch,该类出现在jdk1.5的并发包中的类。
官方一点的介绍就是:一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
接地气介绍:就是一个线程执行完将CountDownLatch设置的数减一,其他线程执行完减一,直到CountDownLatch的数为0,才能继续往下执行,和我的场景一样,我等到所有线程执行完毕之后再返回。
api介绍
CountDownLatch n