Concurrent包-部分笔记

2016组后一篇随笔,哇哈哈

Concurrent

CountDownLatch
信号量控制器,countDown()函数释放当前函数的信号量,当所有该类型信号量释放完毕,await()函数阻塞该线程,等待信号量消费完毕
应用
1.初始化一个信号量的话就相当与开关
2.当初始化为N时,就变成了计数器了

CylicBarrier
每个线程调用await()函数,等待所有线程完成任务,执行初始化内的Runnable
区别

  • CountDownLatch等待调用await外的其他县城的countDown,CylicBarrier等待所有线程的完成,执行额外的操作

**Semaphore **
信号量控制器,调用acquire查询当前信号量是否消费完,如果消费完了就阻塞等待release,一般用于对象池的控制

**Exchanger **
用于两个伙伴线程交换数据

**SynchronousQueue **
极轻量的容量为1的BlockingQueue,用于单个元素在多线程种的传递

参考关于Concurrent的使用Demo

你可能感兴趣的:(Concurrent包-部分笔记)