【问题标题】:Is it safe to use singleton ExecutorService使用单例 ExecutorService 是否安全
【发布时间】:2011-08-24 12:40:59
【问题描述】:

在同一个线程池中使用单例ExecutorServiceCompletionService 的多个实例是否安全?

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

所以,会有多个线程创建像上面这样的实例,“收集器”和一个单例线程池。

【问题讨论】:

  • 我没有发现任何问题。您是否想到了一些可能导致问题的特定问题?
  • 我的直觉告诉我应该没有任何问题。但我想在使用它之前进行确认,因为我找不到这方面的具体文档。

标签: java thread-safety parallel-processing


【解决方案1】:

会好的。 ExecutorCompletionService 的每个实例都维护自己的已完成任务队列,并且只使用底层的 Executor 来处理每个任务。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多