Recently I learned CyclicBarrier, but here's a question:
Code:
public class Main {
public static CyclicBarrier c;
public static void main(String[] agrs){
int threadsCount = 5;
c = new CyclicBarrier(threadsCount + 1);
// make 5 A threads to run
}
}
public class A implements Runnable {
public void run(){
// do something
Main.c.await();
// do something
}
}
In about code, I wonder that why I must initialize CyclicBarrier by (threadsCount + 1) but not (threadsCount), since I never invoke await() in the main method?