线程同步(二)

1 CountdownLatch
countdown倒计时,latch锁、门闩
CountDownLatch countdownLatch = new CountDownLatch(2);
        
        Thread threadA = new Thread(new Runnable() {   
            public void run() {
                    countdownLatch.await();// 当计数器值未减到0时,线程A进入wait状态
            }
        });
        
        Thread threadB = new Thread(new Runnable() {
            public void run() {
                countdownLatch.countDown();// 计数器值减1
            }
        });
        
        Thread threadC = new Thread(new Runnable() {
            public void run() {
                countdownLatch.countDown();
            }
        });
        
        threadA.start();
        threadB.start();
        threadC.start();

作用就是线程A必须等到线程B、C执行完成后,才能执行(B、C)没有执行顺序的要求,栗子:由A来给B、C线程开发令枪

2 CyclicBarrier

CyclicBarrier cyclicBarrier = new CyclicBarrier(2);

        Thread threadA = new Thread(new Runnable() {   
            public void run() {
                    cyclicBarrier.await();//当计数器值未减到0时,线程A进入wait状态
            }
        });
        
        Thread threadB = new Thread(new Runnable() {
            public void run() {
                    cyclicBarrier.await();//线程B将计数器减到0时,线程A、B同时进入就绪态
           }
        });
        
        threadA.start();
        threadB.start();

栗子:小明、小红等着一路回家

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值