concurrent.util包下的常用类

CyclicBarrier使用:

    假设一个场景:每个线程代表一个运动员,当运动员都准备好后才一起出发,只要有一个人没有准备好就一起等待。
    CyclicBarrier cb = new CyclicBarrier(3);
    ExecutorService pool = Executors.newFixedThreadPool(3);
    pool.submit(new Thread(new Runnable() {  run(){

            cb.await();
    }});
    pool.submit(new Thread(new Runnable() {  run(){

            cb.await();
    }});

    pool.submit(new Thread(new Runnable() {  run(){

            cb.await();
    }});

    pool.shutdown();  //同时启动

如果线程数小于3会一直等待下去

CoutDwonLacth使用:

    经常用于监听某些初始化操作,主线程可以通过await()方法直接进入阻塞状态,其他线程进行初始化,初始化完毕后通过countdown()唤醒主线程继续执行操作。

Callable和Future的结合使用:

    其实就是jdk基于future模式的一个封装,当主线程需要数据又不立即需要使用时,主线程继续向下执行,future模式会悄悄另起线程去执行真正的任务,执行完毕后放进FutureStak类中,当主线程需要数据时就从该类中取出。体现的是异步加载的策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值