Samples JDK
Test.java
1 package com.freemindcafe.concurrency.sample6;
2 
3 import java.util.concurrent.CyclicBarrier;
4 
5 public class Test {
6 
7  @org.junit.Test
8  public void test_using_custom_barrier() throws Exception{
9  Barrier barrier = new Barrier(2);
10 
11  Runnable r1 = ()->{
12  try{
13  System.out.println("before in r1");
14  barrier.await();
15  System.out.println("after in r1");
16  }
17  catch(Exception ex){
18 
19  }
20  };
21 
22  Runnable r2 = ()->{
23  try{
24  System.out.println("before in r2");
25  barrier.await();
26  System.out.println("after in r2");
27  }
28  catch(Exception ex){
29 
30  }
31  };
32 
33  Thread t1 = new Thread(r1);
34  Thread t2 = new Thread(r2);
35 
36  t1.start();
37  t2.start();
38 
39  t1.join();
40  t2.join();
41 
42  }
43 
44  @org.junit.Test
45  public void test_using_jdk_barrier() throws Exception{
46  CyclicBarrier barrier = new CyclicBarrier(2);
47 
48  Runnable r1 = ()->{
49  try{
50  System.out.println("before in r1");
51  barrier.await();
52  System.out.println("after in r1");
53  }
54  catch(Exception ex){
55 
56  }
57  };
58 
59  Runnable r2 = ()->{
60  try{
61  System.out.println("before in r2");
62  barrier.await();
63  System.out.println("after in r2");
64  }
65  catch(Exception ex){
66 
67  }
68  };
69 
70  Thread t1 = new Thread(r1);
71  Thread t2 = new Thread(r2);
72 
73  t1.start();
74  t2.start();
75 
76  t1.join();
77  t2.join();
78 
79  }
80 
81 }