Итак, CountDownLatch
не гарантирует, что он возобновит выполнение родительского потока (здесь я имею в виду поток, из которого вы вызвали latch.await();
), как только обратный отсчет перейдет к 0
.Итак, что произойдет, когда обратный отсчет защелки обратного отсчета до 0, что означает, что теперь родительский поток может возобновить свою работу, и это не значит, что он получит процессор тогда и там.Таким образом, это может возобновить, что не означает, что процессор планирует родительский поток, как только обратный отсчет времени до 0
.Если есть другие потоки, то есть вероятность, что они могут выполняться перед родительским потоком. В вашем случае он гарантирует, что он не будет выполнять before
5
печать времени Started
, но ensure
будет exactly
после печати 5
раз Started
.Вы также можете наблюдать при определенном выполнении вашего кода Completed
печатает в конце всей Started
печати.