1. 程式人生 > 其它 >JUC輔助類CyclicBarrier

JUC輔助類CyclicBarrier

技術標籤:java多執行緒多程序juc

api解釋:類似CountDownLatch,但是是一個加法計數器。從0開始計數在這裡插入圖片描述
具體方法:cyclicBarrier.await();等待到CyclicBarrier內規定數量,才會執行await內的語句。

具體程式碼如下:

import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

public class CyclicBarrierDemo {
    public static void main(String[
] args) { CyclicBarrier cyclicBarrier = new CyclicBarrier(7,()->{ System.out.println("召喚神龍"); }); for (int i = 1; i <=7; i++) { final int num=i; new Thread(()->{ System.out.println(Thread.currentThread()
.getName()+"集齊了第"+num+"顆龍珠"); try { cyclicBarrier.await(); } catch (InterruptedException e) { e.printStackTrace(); } catch (BrokenBarrierException e) { e.printStackTrace();
} }).start(); } } }

結果如下:

Thread-0集齊了第1顆龍珠
Thread-2集齊了第3顆龍珠
Thread-1集齊了第2顆龍珠
Thread-3集齊了第4顆龍珠
Thread-5集齊了第6顆龍珠
Thread-6集齊了第7顆龍珠
Thread-4集齊了第5顆龍珠
召喚神龍

Process finished with exit code 0