Изменение количества потоков в диспетчере соединений пула в Java во время выполнения - PullRequest
2 голосов
/ 28 февраля 2012

Я пытаюсь реализовать проект, который использует ThreadSafeClientConnManager, с максимальным количеством потоков в пуле. Теперь, в зависимости от трафика, я хочу изменить количество потоков во время выполнения. Возможно ли это сделать?

У меня есть одно решение, которое может работать: у меня есть новый набор пула потоков, который я инициализирую при изменении максимального количества подключений, а затем заменяю существующее. Вид переключателя буфера. но я не уверен, что это оптимальное решение.

1 Ответ

2 голосов
/ 28 февраля 2012

Я предполагаю, что теперь вы используете Executors.newFixedThreadPool.К сожалению, этот пул не может быть изменен динамически.

Лучшим решением, адаптивным, было бы Executors.newCachedThreadPool.Взгляните на javadoc .

Вызовы для выполнения будут повторно использовать ранее созданные потоки, если они доступны.Если существующий поток недоступен, новый поток будет создан и добавлен в пул.Потоки, которые не использовались в течение шестидесяти секунд, прекращаются и удаляются из кэша.

...