答案 0 :(得分:1)
使用执行程序服务,您需要将其关闭并等待其终止。
executorService.shutdown();
executorService.awaitTermination(1,TimeUnit.HOUR);
关机不会立即停止执行程序,但会阻止它执行新任务,并且允许完成已提交的任务。
awaitTermination阻塞调用线程,直到处理执行程序中的整个任务队列。
另一种方法是使用ExecutorCompletionService
代替并take()
调用提交任务的次数。每次拍摄都将阻止,直到未来完成(或失败)。