java5线程并发库中的工具

来源:互联网 发布:梦里花落知多少上一句 编辑:程序博客网 时间:2024/05/22 05:07

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方法,提交数据,,,返回值为交换后得到的数据!!!

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

 

原创粉丝点击