摘要: 简介 StampedLock 类,是 JDK 1.8 时引入,是对读写锁 ReentrantReadWriteLock 的增强,该类提供了一些功能。优化了读锁,写锁的访问。同时使得读锁和写锁之间可以相互转换,更细力度地控制并发。 该类的设计初衷是作为一个内部工具类,用于辅助线程安全组件开发,用的好可 阅读全文
posted @ 2020-02-08 11:34 当年明月123 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 背景 CyclicBarrier 类在进行多线程编程时使用很多,比如,你创建一组任务,它们并行执行,然后再进行下一个任务之前互相等待,直到所有任务都完成。 源码分析 成员变量 1. CyclicBarrier 使用 ReentrantLock 和 Condition 类来构建。 2. CyclicB 阅读全文
posted @ 2020-02-08 11:33 当年明月123 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 背景 Semaphore 用来控制同时访问某个特定资源的操作数量,或者同时执行某个指定操作的数量。信号量还可以用来实现某种资源池,或者对容器施加边界。 Semaphore 管理着一组许可(permit),许可的初始数量可以通过构造函数设定,操作时要首先获得许可,才能进行操作,操作完成之后释放许可。如 阅读全文
posted @ 2020-02-08 11:31 当年明月123 阅读(403) 评论(0) 推荐(0) 编辑