TestCyclicBarrier.java 945 B

12345678910111213141516171819202122232425262728
  1. import java.util.concurrent.*;
  2. public class TestCyclicBarrier {
  3. public static void main(String[] args) {
  4. int threads = 10;
  5. CyclicBarrier cb = new CyclicBarrier(threads);
  6. ExecutorService executor = Executors.newFixedThreadPool(threads);
  7. for (int i = 0; i < threads; i++) {
  8. final int num = i + 1;
  9. executor.execute(() -> {
  10. System.out.println("Thread " + num + " start.");
  11. try {
  12. cb.await();
  13. } catch (Exception e) {
  14. e.printStackTrace();
  15. }
  16. System.out.println("Thread " + num + " running.");
  17. try {
  18. cb.await();
  19. } catch (Exception e) {
  20. e.printStackTrace();
  21. }
  22. System.out.println("Thread " + num + " end.");
  23. });
  24. }
  25. executor.shutdown();
  26. }
  27. }