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

2024-10-28 00:31:38
推荐回答(1个)
回答1:

看Executor的设计,并没有这种api去检查所有的线程都执行完毕..
一个比较通俗的做法是,当向线程池内增加一个线程的时候,用一个线程安全的变量去记录它.当它结束的时候,再从这个线程安全的变量中减去它.当它等于0的时候.shutdown这个线程池.

还有一种做法是,针对已知的任务队列创建不同的线程池,然后针对这个任务队列进行管理.当所有的任务都已经完成的时候,shutdown这个线程池.
2017年8月25日 12:51:35