专题创作目的
系统整理学习 Java 中的锁信息。
为后续 mysql 数据库编写做铺垫。
历史回顾
基础知识
异步转同步
java 手写并发框架(一)异步查询转同步的 7 种实现方式
开源代码
The distributed lock tool for java.(java 实现开箱即用基于 redis 的分布式锁,支持可重入锁获取。内置整合 spring、springboot。)
深入学习
java 可重入锁 ReentrantLock & jmm √
java ReentrantReadWriteLock 可重入读写锁
自己实现
新篇章
必须在以前的基础上进一步提升,主要偏重于源码学习。
ReentrantReadWriteLock 可重入读写锁源码学习
基础数据结构
JCIP-12-环形队列 CircularQueue 与 CircularBlockingQueue
并发基础知识
同步数据结构
并发数据结构
【阻塞队列】
已发布-阻塞队列(8)-SynchronousQueue 同步队列源码详解
阻塞队列(1)java 7 种阻塞队列 BlockingQueue 介绍
阻塞队列(2)ArrayBlockingQueue 源码详解
阻塞队列(3)LinkedBlockingQueue 源码详解
阻塞队列(4)LinkedBlockingDeque 源码详解
阻塞队列(5)DelayQueue 延迟队列使用入门及源码详解
阻塞队列(6)PriorityBlockingQueue 阻塞优先级队列源码详解
阻塞队列(7)LinkedTransferQueue 使用入门及源码详解
阻塞队列(8)SynchronousQueue 同步队列源码详解
无锁队列
工具篇
闭锁(如CountDownLatch),栅栏(如CyclicBarrier),信号量(如Semaphore)和阻塞队列(如LinkedBlockingQueue)
java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化
底层原理
AbstractQueuedSynchronizer AQS 源码详解
AbstractQueuedLongSynchronizer 这个和 AQS 实现基本一样,只是 64 位的 long state 而已。
分布式锁
Redis Learn-26-Distributed Lock 分布式锁
数据库锁
MVCC Multi Version Concurrency Control 多版本控制
进阶学习
paper 算法篇
内存相关
缓存行
理解CPU Cache和Java对象内存布局。