Я установил maxThreads как 32, но в моих журналах я вижу намного больше, чем фактическое количество.
<Connector port = "8080"
protocol = "HTTP/1.1"
maxThreads = "32" connectionTimeout = "20000" redirectPort = "8443"
compression = "on"
compressionMinSize = "512"
compressableMimeType = "application/json"
/>
Журналы:
24 Oct 2018 13:27:15,378 [INFO,XXX,http-apr-8080-exec-172]
Значит ли это, что это нить 172? Я думал, что пул потоков будет ограничен 32, поскольку я дал maxThreads. И у меня тоже нет специального исполнителя
Я ожидаю, что в идеале в пуле должно быть 25 потоков, и каждый из них будет использоваться повторно. В этом случае id не пересечет 25
Вы уверены, что так работает пул потоков?
Я не уверен, поэтому и спросил.
Тогда не стоит утверждать, что ID "не пересечется" 25. Пожалуйста, проверьте ответ.




В основном, как объясняется в ответе это, не гарантируется, что идентификатор потоков в Java будет начинаться с нуля или быть непрерывным при создании.
Здесь в коде вы можете видеть, что их ID установлен с каким-то приращением последовательности.
Еще раз рекомендую вам запустить какой-нибудь инструмент профилирования в вашем Java-приложении, чтобы увидеть фактическое количество потоков, создаваемых в пуле в данный момент времени.
Пул сократится до minSpareThreads = "10" (значение по умолчанию), если потоки не используются. Если вам нужен больший контроль, настройте отдельный элемент Executor.
Это идентификатор потока, но из этого не следует, что все 172 идентификатора используются для активных потоков. Я рекомендую вам выполнить профилирование, чтобы вы могли точно знать, сколько потоков активно в пуле.