我实例化了ThreadPoolExecutor并将异步任务提交到池中,得到了Future对象,然后尝试取消任务,但取消操作不起作用...
该任务与数据库调用相关。
代码如下:
private ThreadPoolExecutor _scheduledThreadPool;
_scheduledThreadPool = (ThreadPoolExecutor) Executors.newFixedThreadPool(_poolSize, factory);
Future<Object> task = _scheduledThreadPool.submit(task);
tasks.cancel(true);
在上述代码之后,我观察到_scheduledThreadPool.getQueue()返回的是空的。
我已经尝试了几天,但还没有成功。
请帮助我如何在ThreadPoolExecutor中单独取消任务。
谢谢。
process.get(5, TimeUnit.SECONDS); } catch (InterruptedException e) { process.cancel(true); } } catch (TimeoutException e) { process.cancel(true); } 并且定期检查 if (Thread.currentThread().isInterrupted()),然后从进程中返回。非常感谢您的帮助。 - Sunil Kumar