ExecutorService
s を aでラップlisteningDecorator
してListeningExecutorService
. これが Guava チームの推奨事項であることは理解しており、常に価値があるようです。
ただし、ここで問題が発生しています。私のエグゼキューターは標準に基づいて不変でThreadPoolExecutor
あり、そのスレッド プール サイズをアプリケーションに制御させたい (特に、アプリケーションをサポートする管理者に公開したい)。undecoratedThreadPoolExecutor
では、これを行うために必要なメソッドが公開されますが、ラッパーはデリゲートを私から隠しています。
ThreadPoolExecutor
では、をあきらめずに、によって公開された API に戻るにはどうすればよいでしょうlisteningDecorator
か。
私が持っていたいくつかのアイデアは次のとおりです。
ListeningDecorator
デリゲートを公開する新規作成- 装飾されたものだけでなくデリゲートへの参照を保持する
Executor
- への参照のみを保持し、要求された
ThreadPoolExecutor
ときにのみラップします。ExecutorService
- デリゲートに自分の道を反映し、そこからスレッド プールのサイズを操作します。