我想停止在 ExecutorService 上提交的所有任务,但我找不到执行此操作的方法。有什么建议么 ?
问问题
153 次
3 回答
3
于 2012-06-03T14:36:13.937 回答
1
例如,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();
}
于 2012-06-03T14:42:40.157 回答
0
ExecutorService
只有当任务本身被设计为响应外部信号(例如运行任务的线程上的中断,或其他一些应用程序设计的标志)时,才可能对提交的任何任务进行确定性关闭。ExecutorService
它本身只会为您提供这些信号(当您调用它的shutdown()
和shutdownNow()
方法时)并通知所有正在运行的任务。如果您希望能够关闭所有任务(包括那些已经在运行但尚未完成的任务),那么将这些任务设计为具有取消策略。
于 2012-06-03T15:21:01.753 回答