摘要: 目录1. JVM对锁的优化1.1. 锁的消除1.2. 锁的粗化1.3. 偏向锁1.4. 适应性锁2. 锁的膨胀过程分析2.1. 无锁2.2. 偏向锁2.3. 轻量级锁2.4. 重量级锁3. 应用层次优化锁的使用3.1. 降低争用程度方法4. 调整自旋的次数5. 参考 1. JVM对锁的优化 JDK1 阅读全文
posted @ 2025-06-23 21:50 ThinkerQAQ 阅读(42) 评论(0) 推荐(0)
摘要: 目录1. 需求2. 定义属性2.1. 锁的排他性2.2. 锁的状态2.3. 阻塞、唤醒线程2.4. 使用队列保存抢占锁失败的线程3. 添加加锁、解锁操作3.1. 基本流程3.2. 唤醒后继续抢占锁3.3. 加入公平锁的特性4. 最终定版5. 测试6. 流程 我们可以自己动手写一个简单的AQS,以更好 阅读全文
posted @ 2025-06-23 19:36 ThinkerQAQ 阅读(39) 评论(0) 推荐(0)
摘要: 目录1. 是什么2. 如何使用3. 原理分析3.1. 构造方法3.1.1. 由头尾节点和代表锁状态的字段组成3.1.2. Node是个双向队列节点3.2. 获取锁的逻辑3.2.1. 尝试获取锁3.2.2. 尝试获取锁失败,则加入AQS队列3.2.3. 阻塞等待,被唤醒后不停得抢占锁3.2.3.1. 阅读全文
posted @ 2025-06-23 19:35 ThinkerQAQ 阅读(179) 评论(0) 推荐(0)
摘要: 目录1. 是什么1.1. 乐观锁与悲观锁1.2. CAS2. 如何使用2.1. Atomic是什么2.2. Atomic使用2.3. Atomic原理分析2.3.1. 构造方法2.3.2. addAndGet方法2.3.3. getAndIncrement2.3.4. decrementAndGet 阅读全文
posted @ 2025-06-23 11:13 ThinkerQAQ 阅读(209) 评论(0) 推荐(1)