JAVA并发包(二十四):CyclicBarrier
CyclicBarrier中文翻译是循环栏栅,用在并发中,可以理解为它要求指定数量的线程必须 都到达 某个指定位置时才能往下走。为什么叫循环,因为这个栏栅可以多次循环使用,一次放开栏栅后,所有线程都会通过。然后关闭栏栅,后面就可以接着使用。 生活中的例子是,比如一个团队准备去爬山,约定在某个时间地点,要每个成员都到达才会出发。先到达的只能在集合地等待了,只要最后一个成员到达,大家才会出发。代码例子如下: public static void main ( String [ ] args ) throws InterruptedException { CyclicBarrier barrier = new CyclicBarrier ( 2 ) ; Thread t1 = new Thread ( ( ) - > { System . out . println ( "小明到达了集合地" ) ; try { barrier . await ( ) ; } catch ( Exception e ) { e . printStackTrace ( ) ; } System . out . println ( "小明出发爬山" ) ; } ) ; Thread t2 = new Thread ( ( ) - > { System . out . println ( "小张到达了集合地"