1

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

我有一些使用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 个任务的场景, taskA和 task B

如何在B不影响任务的情况下停止任务A

保存到哪里是明智的,这意味着我应该创建某种HashMap东西来存储我的 Future 对象并通过一些键检索它们并对其进行cancel(true)操作,或者更有经验的人如何做到这一点?

4

1 回答 1

1

尝试

Future<String> resultHandlerB = executorService.submit(new WorkerClass());
...
boolean canceled=resultHandlerB.cancel(true);
于 2012-10-08T16:10:49.460 回答