我不是多线程专家,只是初学者,所以请尽量理解我对这个主题的不了解。
我有一些任务与ExecutorService异步执行它们,这是用这个bean创建的:
<bean id="executorService" class="java.util.concurrent.Executors"
factory-method="newFixedThreadPool">
<constructor-arg value="10" />
</bean>
我正在提交我的任务:
Future<String> resultHandler = executorService.submit(new WorkerClass());
让我们想象一下我会在同一时间运行2个任务的情况,即任务A
和任务B
。
如何在不对任务B
产生影响的情况下停止任务A
?
保存到哪里是明智的,这意味着我应该创建某种HashMap
或者什么东西来存储我的Future对象并通过一些键检索它们并对它们进行cancel(true)
或者有人会怎样更有经验吗?
答案 0 :(得分:1)
尝试
Future<String> resultHandlerB = executorService.submit(new WorkerClass());
...
boolean canceled=resultHandlerB.cancel(true);