Android-CyclicBarrier,CountDownLatch,Future
本文最后更新于 612 天前

1. CyclicBarrier

线程同步。cyclicBarrier.reset(); 可以重新执行
所有线程全部完成才可以开始后续操作

CyclicBarrier cyclicBarrier = new CyclicBarrier(3);

    new Thread(() -> {
        try {
            Thread.sleep(10_000);
            System.out.println("t1 在准备 ");
            cyclicBarrier.await();   // 等另外一个一个线程准备好 然后开始做事情
            System.out.println("t1 准备好了  ");
        } catch (InterruptedException | BrokenBarrierException e) {
            e.printStackTrace();
        }

    }).start();

    new Thread(() -> {
        try {
            Thread.sleep(5_000);
            System.out.println("t2 在准备  ");
            cyclicBarrier.await(); // 等另外一个一个线程准备好 然后开始做事情
            System.out.println("t2 准备好了  ");
        } catch (InterruptedException | BrokenBarrierException e) {
            e.printStackTrace();
        }
    }).start();


    System.out.println(" 裁判 在准备 ");
    cyclicBarrier.await();
    System.out.println(" 裁判 准备好了 ");


    while (true){
        if (cyclicBarrier.getNumberWaiting()==0){
            System.out.println(" 时间到: 开始比赛");
            return;
        }
    }
}

2. CountDownLatch

public class CountDownLatchTest {
    static CountDownLatch countDownLatch = new CountDownLatch(2);
    public static void main(String[] args)
        System. out. println( "全班同学开始考试: -共两个学生");
        new Thread(() -> {
            System. out. println(”第一个学生交卷, countDownLatch减1");
            countDownLatch.countDown( );
        }). start();
        new Thread(() -> {
            System. out. println(”第二个学生交卷,countDownLatch减1");
            countDownLatch.countDown();
        }). start();
        try 
            countDownLatch.await();
        } catch (InterruptedException e) {
        e. printstackTrace();
        System.out. println(“老师清点试卷,在此之前,只要一个学生没交, ”
        + "countDownLatch不为8, 不能离开考场”);
    }
}
  • 区别:
    > CyclicBarrier 有一个线程未完成,其他线程都得等待,直到全部线程完成才可以后续准备
    ‘游戏加载,必须全部玩家都准备完成才可以游戏。’
    > CountDownLatch 任意一个线程完成,该线程可以后续。所有线程都完成才可以执行最终逻辑
    ‘考试,任意一个考生考试完就可以离开,但必须全部考生都考试完毕,监考老师才可以最终收卷。’

3. Future

https://www.liaoxuefeng.com/wiki/1252599548343744/1306581155184674

iichen:https://iichen.cn/?p=551
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇