В приведенном ниже коде Thread.activeCount () всегда возвращает 2, даже если поток в исполнителе завершается через 5 секунд.
public class MainLoop {
public static void main(String[] args) throws Exception {
ExecutorService executor = Executors.newFixedThreadPool(12);
executor.submit(new Callable<Void>() {
public Void call() throws Exception {
Thread.sleep(5000);
return null;
}
});
while (true) {
System.out.println(Thread.activeCount());
Thread.sleep(1000);
}
}
}
Я ожидал, что Thread.activeCount () вернет 1 через 5 секунд. Почему всегда возвращается 2?