使用singleton ExecutorService是否安全

时间:2011-08-23 12:32:44

标签: java thread-safety parallel-processing

使用单个ExecutorService和使用相同线程池的多个CompletionService实例是否安全?

CompletionService<Object> collector = new ExecutorCompletionService<Object>(threadPool);

因此,会有多个线程创建上面的实例,'collector'和一个singleton threadPool。

1 个答案:

答案 0 :(得分:5)

没关系。 ExecutorCompletionService的每个实例都维护自己的已完成任务队列,只使用基础Executor来处理每个任务。

如果完成服务的数量很大且线程池有一个上限但这不会影响结果的正确性,那么任务可能会在性能方面相互干扰。