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

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

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

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    public class CyclicBarrier
    extends Object
    一個同步輔助類,它允許一組線程互相等待,直到到達某個公共屏障點 (common barrier point)。在涉及一組固定大小的線程的程序中,這些線程必須不時地互相等待,此時 CyclicBarrier 很有用。因為該 barrier 在釋放等待線程后可以重用,所以稱它為循環 的 barrier。
    CyclicBarrier 支持一個可選的 Runnable 命令,在一組線程中的最后一個線程到達之后(但在釋放所有線程之前),該命令只在每個屏障點運行一次。若在繼續所有參與線程之前更新共享狀態,此屏障操作 很有用。
    以上是jdk文檔的說明

         *  現在說說我們今天活動的內容、首先我們要在公司大廳集合、然后參觀陳云故居
         *  參觀完后集合、準備去淀水湖參觀。(有3輛車、對應3個線程)
         * 
         *  我們必須等大家都到齊了才能去下個地方、比如說 、在公司集合、3輛車子都到了才能出發
         *  要不然人裝不下啊。這是我們可以用到java線程并發庫的CyclicBarrier類
     
    public class CyclicBarrierTest {

        public static void main(String[] args) {

            final CyclicBarrier cb = new CyclicBarrier(3);
            //final Semaphore semaphore=new Semaphore(1);

            for (int i = 1; i <= 3; i++) {
          
                new Thread(new Runnable() {

                    @Override
                    public void run() {
                        try {
                           
                            //semaphore.acquire();
                            System.out.println(Thread.currentThread().getName()
                                    + "公司大廳集合");
                            System.out.println(Thread.currentThread().getName()
                                    + "公司大廳等待....");
                            //semaphore.release();
                            cb.await();
                            Thread.sleep(2000);
                           
                           
                            //semaphore.acquire();
                            System.out.println(Thread.currentThread().getName()
                                    + "陳云故居集合");
                            System.out.println(Thread.currentThread().getName()
                                    + "陳云故居等待....");
                            //semaphore.release();
                            cb.await();
                            Thread.sleep(2000);
                           
                           
                            //semaphore.acquire();
                            System.out.println(Thread.currentThread().getName()
                                    + "淀水湖集合");
                            System.out.println(Thread.currentThread().getName()
                                    + "淀水湖等待....準備回家了");
                            //semaphore.release();
                            cb.await();
                            Thread.sleep(2000);
                           
                           
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        } catch (BrokenBarrierException e) {
                            e.printStackTrace();
                        }
                    }

                }).start();
            }
        }
    }
    以下是輸出結果:
    Thread-0公司大廳集合
    Thread-0公司大廳等待....
    Thread-2公司大廳集合
    Thread-1公司大廳集合
    Thread-1公司大廳等待....
    Thread-2公司大廳等待....
    Thread-0陳云故居集合
    Thread-1陳云故居集合
    Thread-2陳云故居集合
    Thread-1陳云故居等待....
    Thread-0陳云故居等待....
    Thread-2陳云故居等待....
    Thread-0淀水湖集合
    Thread-2淀水湖集合
    Thread-1淀水湖集合
    Thread-2淀水湖等待....準備回家了
    Thread-0淀水湖等待....準備回家了
    Thread-1淀水湖等待....準備回家了

    ***注意上述代碼中的Semaphore類、它也是java線程并發庫中的一個類、更多具體作用我們以后再探討。
    以下是使用Semaphore后的輸出結果:(相信你已經知道不同的地方了)
    Thread-0公司大廳集合
    Thread-0公司大廳等待....
    Thread-1公司大廳集合
    Thread-1公司大廳等待....
    Thread-2公司大廳集合
    Thread-2公司大廳等待....
    Thread-2陳云故居集合
    Thread-2陳云故居等待....
    Thread-1陳云故居集合
    Thread-1陳云故居等待....
    Thread-0陳云故居集合
    Thread-0陳云故居等待....
    Thread-2淀水湖集合
    Thread-2淀水湖等待....準備回家了
    Thread-1淀水湖集合
    Thread-1淀水湖等待....準備回家了
    Thread-0淀水湖集合
    Thread-0淀水湖等待....準備回家了

    http://blog.sina.com.cn/s/blog_7f448c520101219g.html
    posted on 2013-01-08 00:39 abin 閱讀(422) 評論(0)  編輯  收藏 所屬分類: JavaMultithread
    主站蜘蛛池模板: 成在线人免费无码高潮喷水| 亚洲成人影院在线观看| 亚洲一级片免费看| 亚洲AV无码一区二区乱子仑| 亚洲最大黄色网址| 亚洲va久久久噜噜噜久久天堂| 免费真实播放国产乱子伦| 青娱分类视频精品免费2| 免费精品99久久国产综合精品| 黄色免费网站在线看| 亚洲欧美日韩一区二区三区在线 | 亚洲日韩精品无码专区加勒比 | 国产成人综合亚洲一区| 亚洲大成色www永久网址| 亚洲欧洲高清有无| 久久精品国产亚洲av高清漫画 | 一级毛片免费视频| a级毛片无码免费真人久久| 一级黄色毛片免费看| 免费福利在线观看| 在线视频亚洲一区| 精品国产亚洲AV麻豆 | 又大又粗又爽a级毛片免费看| 性短视频在线观看免费不卡流畅| 人妻无码久久一区二区三区免费| 麻豆精品成人免费国产片| 成年女人免费视频播放体验区 | 久久亚洲综合色一区二区三区 | 成人午夜影视全部免费看| 国产尤物在线视精品在亚洲| 亚洲av无码专区在线观看下载| 亚洲国产欧洲综合997久久| 亚洲天堂男人影院| 亚洲七久久之综合七久久| 亚洲中文字幕无码中文字| 国产v亚洲v天堂a无| 亚洲精品综合在线影院| 亚洲日韩精品无码专区加勒比| 亚洲狠狠婷婷综合久久| 在线观看亚洲免费视频| 亚洲精品视频免费|