<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    CountDownLatch和CyclicBarrier的區別

    Posted on 2015-03-02 06:28 leekiang 閱讀(492) 評論(0)  編輯  收藏 所屬分類: java
    CountDownLatch : 一個線程(或者多個), 等待另外N個線程完成某個事情之后才能執行。? ?
    CyclicBarrier? : N個線程相互等待,任何一個線程完成之前,所有的線程都必須等待。
    這樣應該就清楚一點了,對于CountDownLatch來說,重點是那個“一個線程”, 是它在等待, 而另外那N的線程在把“某個事情”做完之后可以繼續等待,可以終止。而對于CyclicBarrier來說,重點是那N個線程,他們之間任何一個沒有完成,所有的線程都必須等待。

    CyclicBarrier 在釋放等待線程后可以重用,所以稱它為循環的 barrier。它 還支持一個可選的 Runnable 命令,在一組線程中的最后一個線程到達之后(但在釋放所有線程之前),該命令只在每個屏障點運行一次。若在繼續所有參與線程之前更新共享狀態,此屏障操作很有用。



    public class Test {
    ??? public static void main(String[] args) {
    ??????? new Test().test1();
    ??? }
    ?? ?
    ??? public void test1() {
    ??????? CyclicBarrier cyclicBarrier = new CyclicBarrier(4, new Runnable() {
    ??????????? @Override
    ??????????? public void run() {
    ??????????????? System.out.println("所有玩家進入第二關!");
    ??????????? }
    ??????? });

    ??????? for (int i = 0; i < 4; i++) {
    ??????????? new Thread(new Player(i, cyclicBarrier)).start();
    ??????? }
    ??? }

    ??? class Player implements Runnable {
    ??????? private CyclicBarrier cyclicBarrier;
    ??????? private int id;

    ??????? public Player(int id, CyclicBarrier cyclicBarrier) {
    ??????????? this.cyclicBarrier = cyclicBarrier;
    ??????????? this.id = id;
    ??????? }

    ??????? @Override
    ??????? public void run() {
    ??????????? try {
    ??????????????? System.out.println("玩家" + id + "正在玩第一關...");
    ??????????????? cyclicBarrier.await();
    ??????????????? System.out.println("玩家" + id + "進入第二關...");
    ??????????? } catch (InterruptedException e) {
    ??????????????? e.printStackTrace();
    ??????????? } catch (BrokenBarrierException e) {
    ??????????????? e.printStackTrace();
    ??????????? }
    ??????? }
    ??? }
    }
    主站蜘蛛池模板: 国产亚洲一区二区三区在线| 亚洲AV之男人的天堂| 亚洲一区中文字幕久久| 国产羞羞的视频在线观看免费| 亚洲人成色77777| baoyu122.永久免费视频| 亚洲区小说区图片区QVOD| 两个人www免费高清视频| 国产亚洲精品无码成人| 免费视频成人手机在线观看网址| 精品亚洲永久免费精品| 国产三级在线免费| 亚洲欧洲视频在线观看| 亚洲国产精品免费观看| 久久成人国产精品免费软件| 久久亚洲精品无码VA大香大香| 最近中文字幕电影大全免费版 | 久久久久久精品免费免费自慰| 亚洲精品高清国产麻豆专区| 男女超爽刺激视频免费播放| 亚洲熟妇无码AV不卡在线播放 | 暖暖免费高清日本中文| 精品视频免费在线| 亚洲AV无码乱码国产麻豆穿越 | 在线观看免费亚洲| 亚洲日韩一页精品发布| 69视频在线观看免费| 亚洲色中文字幕在线播放| 亚洲av成人一区二区三区在线观看| 成人毛片100免费观看| 亚洲黄色在线观看| 国产麻豆免费观看91| 黄视频在线观看免费| 亚洲毛片一级带毛片基地| 又爽又黄无遮挡高清免费视频| 99久久99这里只有免费的精品| 亚洲天堂福利视频| 久久国产免费一区二区三区| 亚洲kkk4444在线观看| jlzzjlzz亚洲乱熟在线播放| 99在线精品视频观看免费|