У меня была короткая Java-программа, которая создала одного запланированного исполнителя потока, и я запланировал задачу.
ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
scheduledExecutorService.schedule(cloudWatchReporter, accumulateForMillis, TimeUnit.MILLISECONDS);
До наступления запланированного времени мой основной поток завершился и JVM вышла.Я ожидал, что он дождется завершения таймера и выполнения запланированной задачи перед тем, как завершить работу.Это не то, что случилось.Если я добавлю достаточный сон перед тем, как закончится мой основной поток, моя задача будет выполняться до выключения JVM.
Есть ли у исполнителя основной поток, который управляет таймером?Или эффект таймера достигается другим способом?Если он управляется каким-либо главным потоком, является ли он потоком демона или потоком, не являющимся демоном?