当前位置:  开发笔记 > 编程语言 > 正文

是否有两个ExecutorServices可以共享一个线程池?

如何解决《是否有两个ExecutorServices可以共享一个线程池?》经验,为你挑选了2个好方法。

我有一组要处理的记录,并且处理可以并行化,所以我创建了一个ExecutorService(通过Executors#newCachedThreadPool()).单个记录的处理本身由可并行化的步骤组成,所以我想使用另一个ExecutorService.是否有一种简单的方法可以使这个新的使用相同的底层线程池?它甚至是可取的吗?谢谢.



1> Yuval Adam..:

回答你的问题:,两个ExecutorService对象不能共享一个线程池.但是,您可以根据需要ExecutorService在对象之间共享,或者创建多个Executor,但不建议这样做.

最佳解决方案:Executor在您的对象之间共享.



2> Dennis C..:

简答:不.

更长的答案:你需要自己的实现来做到这一点.ExecutorService是一个界面,AbstractExecutorService很容易实现.如果您希望两个ExecutorService共享相同的ThreadPool(例如,具有不同的最大活动线程值),您可以使用代理模式来进行ThreadPool共享ExecutorService.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有