Странное поведение ThreadPoolExecutor
в Java 5, когда пул ядра равен нулю, было ошибкой. По-видимому, это было тихо исправлено в Java 6.
Действительно, проблема, по-видимому, снова появилась в Java 7 (согласно https://bugs.openjdk.java.net/browse/JDK-7091003) в результате некоторой переделки. Затем это было признано ошибкой и исправлено.
Обратите внимание, что Параллелизм на практике описывает это как «кажущееся странное поведение» и не предлагает явно использовать его в своих code.
Итак, каков фактический вариант использования для установки corePoolSize
на ноль?
Один из таких вариантов использования - это сделать то, что предлагает Параллелизм на практике , в:
Разработчики иногда стремятся установить размер ядра равным нулю, чтобы рабочие потоки в конечном итоге будут разорваны и, следовательно, не будут препятствовать выходу JVM.
И, в более широком смысле, другой вариант использования - это если вы хотите, чтобы потоки были разорваны для освобождения ресурсов. .. потому что пул потоков вряд ли будет использоваться в течение длительного времени.