摘要: package com.hugh.java17.v19; import java.time.Duration; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import jav 阅读全文
posted @ 2025-10-26 21:52 十三山入秋 阅读(5) 评论(0) 推荐(0)
摘要: 关于 Integer 作为锁对象的风险总结 核心结论 Integer(如 Integer lock = 1;)不适合作为 synchronized 的锁对象,因缓存复用和不可变性导致同步逻辑失效。 关键风险点 缓存复用导致锁冲突 Java 对 [-128, 127] 范围内的 Integer 实现缓 阅读全文
posted @ 2025-10-26 17:18 十三山入秋 阅读(6) 评论(0) 推荐(0)
摘要: 可重入锁的核心是“同一线程可重复获取同一把锁”,Java 中 synchronized 和 ReentrantLock 都是可重入锁,写法各有特点。下面分别两种锁的可重入用法示例,清晰展示“重复获取锁”的场景: 一、synchronized 可重入写法(隐式可重入,JVM 自动管理) synchro 阅读全文
posted @ 2025-10-26 17:10 十三山入秋 阅读(5) 评论(1) 推荐(0)
摘要: ReentrantLock 是 JDK 提供的手动锁(位于 java.util.concurrent.locks 包),与 synchronized 同为可重入锁,但用法和特性有显著区别。下面从 用法、核心区别、适用场景 三个维度对比,讲清楚它们的“讲究”: synchronized 是手动挡,Re 阅读全文
posted @ 2025-10-26 16:07 十三山入秋 阅读(6) 评论(1) 推荐(0)
摘要: 确实,实际业务中库存通常存在数据库,但多线程操作时仍可能有并发问题(比如数据库事务未控制好导致超卖)。下面结合真实业务场景(含数据库操作),用更贴近实际的代码示例说明 synchronized 和 volatile 的用法,同时加入数据库层面的处理逻辑。 一、同步代码块:解决“数据库库存并发扣减”问 阅读全文
posted @ 2025-10-26 13:03 十三山入秋 阅读(3) 评论(3) 推荐(0)