Synchronizing tasks in a common point
The Java concurrency API provides a synchronizing utility that allows the synchronization of two or more threads in a determined point. It's the
CyclicBarrier class. This class is similar to the
CountDownLatch class explained in the Waiting for multiple concurrent events recipe in this chapter, but presents some differences that make them a more powerful class.
CyclicBarrier class is initialized with an integer number, which is the number of threads that will be synchronized in a determined point. When one of those threads arrives to the determined point, it calls the
await() method to wait for the other threads. When the thread calls that method, the
CyclicBarrier class blocks the thread that is sleeping ...