Java · Intermediário · Inglês · Técnico
CountDownLatch
Sincronizador que faz threads esperarem até que um contador chegue a zero, decrementado por outras threads com countDown.
Onde usar
Aparece em testes de concorrência e na inicialização: esperar N workers terminarem ou liberar várias threads ao mesmo tempo.
Em código
var latch = new CountDownLatch(3);
for (int i = 0; i < 3; i++) {
Thread.ofPlatform().start(latch::countDown);
}
latch.await(); // espera as trêsExemplos
Wait on the latch until all workers are done.
Espere no latch até todos os workers terminarem.
A CountDownLatch can't be reset once it reaches zero.
Um CountDownLatch não pode ser reiniciado depois de chegar a zero.
Cuidado
É de uso único: depois que chega a zero não reinicia. Para reuso, use CyclicBarrier ou Phaser.
Sinônimos
trava de contagem