[英]How can I use ExecutorService to get results of all the tasks submitted?
[英]how can i stop all submitted tasks on ExecutorService
我想停止在ExecutorService上提交的所有任务,但是我找不到执行该任务的方法。 有什么建议么 ?
例如,var pool是一个ExecutorService。
//start a task
pool.execute(task);
//
try {
pool.shutdown();
if(!pool.awaitTermination(awaitTime, TimeUnit.MILLISECONDS)){
pool.shutdownNow();
}
} catch (InterruptedException e) {
pool.shutdownNow();
}
只有当任务本身被设计为响应外部信号(例如运行任务的线程上的Interruption或某些其他应用程序设计的标志)时,才可以确定性地关闭提交给ExecutorService
任何任务。 ExecutorService
本身仅能帮助您(在您调用其shutdown()
和shutdownNow()
方法时)会为您引发这些信号,并通知所有正在运行的任务。 如果您希望能够关闭所有任务(包括已经在运行但尚未完成的任务),请设计这些任务以具有取消策略。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.