我Executors.newFixedThreadPool
用来生成一个线程池,并希望在作业队列为空且没有线程在工作时将其关闭。我该怎么做?
问问题
93 次
1 回答
4
您首先需要关闭池,同时让所有已提交的任务完成但不允许新的任务。然后你可以阻塞直到队列为空并且所有任务都完成:
pool.shutdown();
pool.awaitTermination(1, TimeUnit.HOUR);
执行之前提交的任务,但不会接受新的任务
ExecutorService.awaitTermination()
:
在关闭请求后阻塞,直到所有任务都完成执行
于 2012-07-21T17:31:32.250 回答