wuhui
Published on 2017-09-02 11:31 in 暂未分类 with wuhui

线程池判断线程全部执行完毕

线程数量固定

预先知道线程数量,没啥好说的,直接CountDownLatch,如果执行完毕线程池立即可以关闭,也可以使用线程池的isTerminated()方法。

线程数量不固定

线程数量是动态变化的且线程池需要一直保持开启,这是常见的需求。

1.使用线程池submit创建带返回值类型线程得到Future集合,通过调用Future的isDone方法来确定所有线程执行结束。

2.设置一个静态变量原子类变量count,每次建立一个线程的时候+1,线程结束的时候-1(确保无论是否异常一定执行,最好是在finally语句块-1),主线程通过判断count值可以确定线程是否都执行结束。

posted @ 2021-04-18 21:14  NoRegrets  阅读(601)  评论(0)    收藏  举报