![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
锁
吴顺达
这个作者很懒,什么都没留下…
展开
-
Condition 源码学习
Condition 解析原创 2020-12-16 16:20:12 · 152 阅读 · 0 评论 -
ReentrantReadWriteLock 源码学习
是什么 读写锁在同一时刻可以允许多个读线程访问,但是写线程操作时,所有的读线程和其他写线程均被阻塞。 使用例子 public class LockTest { private static ReadWriteLock lock = new ReentrantReadWriteLock(); /** * 读取资源 */ public void read() throws InterruptedException { lock.readLock().原创 2020-12-15 20:29:11 · 129 阅读 · 0 评论 -
可重入锁 ReentrantLock AQS 源码解析
使用范例 Lock lock = new ReentrantLock(); lock.lock(); try { dosomething(); } finally { lock.unlock(); } 在finally块中释放锁,目的是保证在获取到锁之后,最终能够被释放。 接口结构 Lock是个顶级接口,构建了锁的生态环境 void lock(); 获取锁。 如果该锁不可用,则出于线程调度目的,当前线程将被禁用,并处于休眠状态,直到获得该锁为止 void lockInterru原创 2020-12-11 23:22:42 · 310 阅读 · 2 评论 -
volatile关键字 可见性 有序性 原子性 内存语义
理解volatile特性的一个好方法是把对volatile变量的单个读/写,看成是使用同一个锁对这些单个读/写操作做了同步 class VolatileFeaturesExample { volatile long vl = 0L; // 使用volatile声明64位的long型变量 public void set(long l) {...原创 2020-12-09 22:51:03 · 222 阅读 · 0 评论