Eine CountDownLatch synchronisiert in Java einen bestimmten Zeitpunkt von mehreren Threads.
Funktionsweise
- Ein wartender Thread, der sich synchronisieren möchte, wartet durch
await() - In diesem Thread (oder an anderer Stelle) wird mit
countDown()ein interner Zähler heruntergezählt - Ist der Countdown erreicht, wird
await()nicht weiter blockiert
// Definition
CountDownLatch barrier = new CountDownLatch(n);
// Innerhalb der Threads
barrier.await()
// Wird das zum n-ten Mal aufgerufen, löst sich das await und es geht weiter
barrier.countDown()