<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 閱讀(483) 評論(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();
    ??????????? }
    ??????? }
    ??? }
    }
    主站蜘蛛池模板: 88av免费观看入口在线| 日韩免费无码视频一区二区三区 | 亚洲欧美aⅴ在线资源| 91精品国产亚洲爽啪在线影院 | 日本午夜免费福利视频| 国产免费av片在线看| 四虎在线免费视频| 日本在线高清免费爱做网站| 99久9在线|免费| 99精品一区二区免费视频| 日本在线免费观看| 99久久精品免费视频| 18禁男女爽爽爽午夜网站免费| 成年女人免费碰碰视频| 波多野结衣中文一区二区免费| 国产在线jyzzjyzz免费麻豆| 中文字幕在线观看免费视频| 十八禁无码免费网站| h在线观看视频免费网站| A在线观看免费网站大全| 日本a级片免费看| 亚洲偷自拍拍综合网| 亚洲人成色77777| 亚洲理论片在线观看| 亚洲av永久无码| 国内精品免费久久影院| 无码一区二区三区免费视频| 免费无码成人AV片在线在线播放| 亚洲最新永久在线观看| 亚洲AV综合色区无码二区偷拍| 一级美国片免费看| 国产又粗又长又硬免费视频| kk4kk免费视频毛片| 99久久综合国产精品免费| 美女被免费喷白浆视频| 97人伦色伦成人免费视频| 国产AV无码专区亚洲精品| 亚洲最大的成人网| 国产精品无码一二区免费| 99久久免费看国产精品| 免费无遮挡无码视频在线观看|