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()