調整可能なキューサイズで調整可能なスレッドプールを作成する予定です。私は無制限のLinkedBlockingQueueを使用して、キューに入れられるメッセージの数を制御する外部設定を使用しています。最初、私のcorepoolsizeとmaxpoolsizeは等しいです。今、実行時にスレッドプールのサイズを更新したい場合は、corepoolsizeとmaxpoolsizeを共通の設定で別の値に設定します。このアプローチについてどう思いますか知りたい。調整可能なスレッドプールとキュー
maxpoolsizeをInteger.MAX_VALUEに設定すると、キューが無制限なのでcorepoolsizeを調整できますか?
外部制御とLinkedBlockingQueueの代わりにCallerRunsPolicyでSynchronousQueueを使用することをお勧めしますか?
重要:コアスレッドプールのサイズを小さくするとどうなるのか知りたいのですが、進行中のタスクは途中で放棄されますか?
http://stackoverflow.com/questions/5719279/how-to-modify-threadpooltaskexecutor-at-runtime-through-jmx –
なぜCachedThreadPoolを試してみませんか? http://stackoverflow.com/questions/17957382/fixedthreadpool-vs-cachedthreadpool-the-lesser-of-two-evils –
実行時にthreadpoolsizeを増減したいので、CachedThreadPoolは役に立ちません。 – theeminence