An introduction to the Phaser class
The Phaser
class is a synchronization mechanism designed to control the execution of algorithms that can be divided into phases in a concurrent way. If you have a process with clear defined steps so you have to finish the first one before you can start the second one and so on, you can use this class to make a concurrent version of your process. The main characteristics of the Phaser
class are:
The phaser must know the number of tasks it has to control. Java refers to this as the registration of the participants. A participant can register in a phaser any time.
The tasks must inform the phaser when they finish a phase. The phaser will make that task sleep until all the participants have finished that phase.
Internally, the phaser saves an integer number that stores the number of phase changes the phase has made.
A participant can leave the control of the phaser any time. Java refers to this as the deregistration of the participants.
You can execute custom code...