java5线程并发库中的工具

Shawn 原创,转载请注明!

原文地址:http://blog.csdn.net/a15874647/article/details/6443636

 

信号灯,,,Semaphore类。。它所实现的功能就类似于公共厕所,,如果有10个人同时要去上这个厕所,而厕所只有5个坑,所以一次只能进去5个人,当5个人中的任何一个离开后,其中另外等待的5个人中的1个人就可以上了!!!

如果说Semaphore类中只维护一个坑,就和synchronized互斥相似了。。。但是它比单纯的互斥要好,,它还能够恢复死锁状态。。。

 

Semaphore类中的acquire方法获得一个信号的许可!!!release方法释放一个信号的许可!!!而这两个方法可以被两个不同的线程调用。。。。

 

栅栏,,CyclicBarrier,,,多个同样任务线程的线程中的一道栅栏,,,等待其他线程都执行到此,才开始一起向下执行!!!!

 

 

 

 

CountDownLatch,,,相当于一个计数器!!!可以实现线程的计数,,互相之间,,,到达某个数量,再往下执行!

 

 

 

Exchanger,,,实现两个线程之间的数据交换!!!通过exchange方法,提交数据,,,返回值为交换后得到的数据!!!

就像两个情报员互相交换数据一样,,其中一个到了,,另一个没到,,到的那个就会开始等待,等待没到的到了就进行交换。。。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值