如何判断线程池内线程已执行完毕
判断线程池内线程已执行完毕可以通过以下几种方式:
1. 使用线程池的原生函数isTerminated():这个方法在执行shutdown()关闭线程池后,判断是否所有任务已经完成。全部完成返回true,否则返回false。这种方式操作简便,但需要主线程阻塞。
2. 使用CountDownLatch:这种方式操作相对简便,可以把等待线程池中任务完成后的后续工作做成任务,同样放到线程池中运行,简单来说,就是可以控制线程池中任务执行的顺序。缺点是需要提前知道任务的数量。
3. ThreadPoolExecutor的getCompletedTaskCount()方法:判断完成任务数和全部任务数是否相等。
4. 手动维护一个公共计数:原理和闭锁类似,就是更加灵活。
5. 使用submit向线程池提交任务,Future判断任务执行状态。
如有侵权请及时联系我们处理,转载请注明出处来自
推荐文章
科技快看 广州壹创集信息科技有限公司 版权所有 粤ICP备2021122624号