Java 如何判断线程池所有任务是否执行完毕

2024-01-06 02:29:44
推荐回答(2个)
回答1:

可以在线程池类中定义 存储空闲 线程的集合(初始化时所有线程默认都为空闲),每新起一个线程就对这个集合操作一次 减少一个空闲线程。总线程数-空闲线程数=0 即所有线程池任务都执行完成了。(记住 每次线程任务执行完了 回收的时候 记得把线程加入到空闲 线程集合中,避免统计数量的时候 不准确)。或者在开始定义一个 工作中的 线程集合,每新增一个 线程就往集合中加一个,每释放一个 就减一个,意思相同。

回答2:

启动一次顺序关闭,执行以前提交的任务,但不接受新任务。如果已经关闭,则调用没有其他作用。