首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可阻ListeningExecutorService

可阻ListeningExecutorService
EN

Stack Overflow用户
提问于 2012-04-19 17:40:42
回答 1查看 268关注 0票数 1

我已经养成了将ExecutorServices封装在listeningDecorator中以生成ListeningExecutorService的习惯。据我所知,这是番石榴队的推荐,而且似乎总是值得的。

然而,我在这里遇到了一个问题。我的执行器基于标准的ThreadPoolExecutor是不变的,我希望将线程池大小的控制权交给我的应用程序(特别是将它公开给支持应用程序的管理员)。对于未修饰的ThreadPoolExecutor,需要公开执行此操作的方法,但是包装器正在向我隐藏委托。

那么,我需要做什么才能回到ThreadPoolExecutor公开的api而不放弃listeningDecorator呢?

我有几个想法:

创建一个新的delegate

  • Keep,它公开了对委托和修饰的Executor

  • Only的引用,保留了对ThreadPoolExecutor的引用,并且只有当以requested

  • Reflect的方式进入委托并操作线程池大小(

)时,才对ThreadPoolExecutor进行包装。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-19 18:21:13

这里的番石榴团队成员。

我会编写一个新的ListeningThreadPoolExecutor类,它基本上是一个包装ThreadPoolExecutorListeningDecorator变体,但我不会公开委托本身,而是从转发到委托ThreadPoolExecutorListeningThreadPoolExecutor中公开setCorePoolSize(int size)方法。

与选项1相比,这种方法所暴露的内部细节更少,但如果不能做到这一点,我将回到您已经描述过的选项1。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10233689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档