What's the difference with a semaphore?
A latch allows one or more threads to wait until a set of operations being performed in other threads completes [0].
[0] https://docs.oracle.com/javase/8/docs/api/java/util/concurre...
A barrier (what this thing is) blocks threads until the counter reaches zero.