Безопасно ли использовать синглтон ExecutorService - PullRequest
6 голосов
/ 23 августа 2011

Безопасно ли использовать синглтон ExecutorService и несколько экземпляров CompletionService, использующих один и тот же пул потоков?

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

Таким образом, будет несколько потоков, создающих экземпляры, как указано выше, "коллектор" содна синглтон-нить пул.

1 Ответ

5 голосов
/ 23 августа 2011

Все будет хорошо. Каждый экземпляр ExecutorCompletionService поддерживает свою очередь завершенных задач и просто использует базовый Executor для обработки каждой задачи.

Задачи могут мешать друг другу с точки зрения производительности, если количество служб завершения велико и пул потоков имеет верхний предел, но это не повлияет на правильность результата.

...