关于如何在java中停止任务的建议

时间:2012-10-08 15:44:07

标签: java multithreading spring

我不是多线程专家,只是初学者,所以请尽量理解我对这个主题的不了解。

我有一些任务与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)或者有人会怎样更有经验吗?

1 个答案:

答案 0 :(得分:1)

尝试

Future<String> resultHandlerB = executorService.submit(new WorkerClass());
...
boolean canceled=resultHandlerB.cancel(true);