- 博客(4)
- 收藏
- 关注
原创 循环依赖加 @Lazy 后异常漂移?Spring 三级缓存为什么没兜住?
Spring循环依赖问题复盘:从异常诊断到依赖治理 本文记录了一个真实项目中Spring循环依赖问题的排查过程。文章首先描述了拆分"上帝类"后遇到的项目启动异常,详细介绍了几次误判和修正过程。
2026-06-08 21:33:36
190
1
原创 大二的我手写了一把内存锁(补)
本文深入探讨了手写内存锁设计中的五个关键细节,包括DCL是否需要volatile、单机锁在多实例下的失效原因、LockSupport优于wait/notify的适用性、批量加锁的防死锁策略,以及SQL CAS与Java锁的分工。通过分析Hashtable的happens-before语义、跨进程内存隔离问题、LockSupport的permit机制、固定排序避免死锁的数学原理,揭示了分布式锁与单机锁的本质差异,为高并发场景下的锁设计提供了底层实践指导。
2026-06-08 11:51:25
316
原创 大二的我手写了一把内存锁(下)
本文通过实验揭示Java内存锁与MySQL事务的微妙关系。核心发现: 内存锁局限性:LockOperator虽能串行化请求,但无法保证事务读取最新版本,因MVCC快照读可能隔离写操作; MVCC机制:RR隔离级别下,事务内首次读生成ReadView,后续快照读可能看不到其他事务已提交的修改; 兜底方案:UPDATE的当前读+SQL条件更新才是最终防线。实验数据显示本地锁在单机场景性能优于Redis锁,但需注意锁边界与事务边界对齐问题。多实例部署需转向分布式锁实现。
2026-06-07 12:45:29
687
原创 大二的我手写了一把内存锁(上)
文章摘要 本文记录了一位大二学生在开发笔记系统时,针对用户存储空间并发控制问题的解决方案演进过程。作者最初面临多端同时上传导致的"检查-执行"时间窗口问题,即两个线程可能同时读取旧值导致存储超限。通过分析并发时序图,作者意识到需要按用户维度隔离的锁来保证存储变更的原子性。
2026-06-07 11:55:15
542
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅