摘要: Semaphore简介 Semaphore是一个计数信号量,它的本质是一个"共享锁"。 信号量维护了一个信号量许可集。线程可以通过调用acquire()来获取信号量的许可;当信号量中有可用的许可时,线程能获取该许可;否则线程必须等待,直到有可用的许可为止。 线程可以通过release()来释放它所持 阅读全文
posted @ 2017-06-01 17:43 jiguojing 阅读(364) 评论(0) 推荐(0) 编辑
摘要: CyclicBarrier简介 cuclicBarrier允许一组线程互相等待,直到到达某个公共屏障点(common barrier point)。因为该barrier在释放等待线程后可以重用,所以称它为循环的barrier。 CyclicBarrier函数列表 CyclicBarrier数据结构 阅读全文
posted @ 2017-06-01 17:00 jiguojing 阅读(276) 评论(0) 推荐(0) 编辑
摘要: CountDownLatch简介 CountDownLatch是通过“共享锁”实现的。在创建CountDownLatch中时,会传递一个int类型参数count,该参数是“锁计数器”的初始状态,表示该“共享锁”最多能被count给线程同时获取。当某线程调用该CountDownLatch对象的awai 阅读全文
posted @ 2017-06-01 16:12 jiguojing 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 介绍: ReadWriteLock,顾名思义,是读写锁。它维护了一对相关的锁 — — “读取锁”和“写入锁”,一个用于读取操作,另一个用于写入操作。(1)“读取锁”用于只读操作,它是“共享锁”,能同时被多个线程获取。(2)“写入锁”用于写入操作,它是“独占锁”,写入锁只能被一个线程锁获取。(3)注意 阅读全文
posted @ 2017-06-01 09:42 jiguojing 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 一.LockSupport的介绍 LockSupport是用来创建锁和其他同步类的基本线程阻塞原语。 LockSupport中的park() 和 unpark() 的作用分别是阻塞线程和解除阻塞线程,而且park()和unpark()不会遇到“Thread.suspend 和 Thread.resu 阅读全文
posted @ 2017-06-01 09:04 jiguojing 阅读(260) 评论(0) 推荐(0) 编辑