Исходное исключение python FP

Executors.newCachedThreadPool() использует Executors.defaultThreadFactory() для своего ThreadFactory. defaultThreadFactory javadocs говорят, что «каждый новый поток создается как поток без демона» (выделено мной). Итак, потоки, созданные для newCachedThreadPool, не являются демонами. Это означает, что они будут препятствовать естественному выходу JVM («естественно», я имею в виду, что вы все равно можете вызвать System.exit(1) или убить программу, чтобы заставить JVM остановиться).

Причина приложения совсем не заканчивается то, что каждый поток, созданный в newCachedThreadPool, истекает и закрывается после некоторого времени бездействия. Когда последний из них закрывается, если ваше приложение не имеет ничейных ничейных левых, оно прекратится.

Вы можете (и должны) закрыть ExecutorService вниз вручную с помощью shutdown или shutdownNow.

См. также JavaDoc для Thread , в котором говорится о демонах.

0
задан jonathan-dev 13 July 2018 в 07:04
поделиться