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