java多线程系列5-并发工具类

1.CountDownLatch

作用:一组线程等待其他线程执行完成后,再执行任务。类似join方法
调用await方法等待,countdown方法让数量减一

2.CyclicBarrier

作用:一组线程到达某个状态后等待,知道线程组内最后一个线程到达后,再继续执行。
这里有个方法额外说明下:public CyclicBarrier(int parties, Runnable barrierAction) ,这个是线程都到达指定状态后,执行参数内任务,这里是从这组线程中选择一个去执行。
和CountDownLatch的不同:
- CyclicBarrier可以重复使用,CountDownLatch不行
- countdownlatch放行由第三者控制,CyclicBarrier放行由一组线程本身控制
- countdownlatch放行条件>=线程数,CyclicBarrier放行条件=线程数

3.Semaphore

信号量,可以控制访问资源的线程数,可用于流量控制。acquire() 获取一个许可,如果没有就等待,而 release() 释放一个许可。

4.Exchange

用于两个线程交换数据,交换完数据后才继续执行

5.Callable、Future和FutureTask

FutureTask 实现了Runnable接口,内部包含一个Callable。
- isDone():任务结束,不管正常还是异常结束,或者是任务取消,都返回true
- isCancelled :任务完成前被取消,返回true
- cancel(boolean):任务还未开始,返回false。任务已经结束,返回false。任务正在运行,cancel(true)将会尝试中断正在执行的任务,返回true。cancel(false)不会中断正在执行的任务,返回true。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值