【发布时间】:2017-09-15 15:45:33
【问题描述】:
如果我经常安排要运行的任务被 future.cancel(true); 取消,Executor.newSingleThreadExecutor() 的行为如何?
executor产生的单线程是否被中断(因此future代码需要清除中断),还是在下一个future启动时中断标志自动清除。
Executor 是否需要在每个中断上产生一个额外的线程以供剩余的任务队列使用?
有没有更好的办法?
【问题讨论】:
-
Future,你调用cancel,通常是一个FutureTask,它已经在执行后处理清除取消中断。万一,中断发生在任务运行时。否则,执行者的线程根本不会被中断。
标签: java multithreading future executor