1

私はマルチスレッドの専門家ではなく、初心者なので、この件に関する私の理解が不十分であることを理解してください。

この Bean で作成されたExecutorServiceと非同期で実行するタスクがいくつかあります。

<bean id="executorService" class="java.util.concurrent.Executors"
    factory-method="newFixedThreadPool">
    <constructor-arg value="10" />
</bean>

私はこのように自分のタスクを提出しています:

Future<String> resultHandler = executorService.submit(new WorkerClass());

Ataskと taskの 2 つのタスクを同時に実行するシナリオを想像してみましょう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 に答える