专题创作目的

系统整理学习 Java 中的锁信息。

为后续 mysql 数据库编写做铺垫。

历史回顾

基础知识

java 锁基本概念

java 对象锁

java 可重入锁

异步转同步

java 手写并发框架(一)异步查询转同步的 7 种实现方式

java 手写并发框架(二)异步转同步框架封装锁策略

java 手写并发框架(三)异步转同步框架注解和字节码增强

java 手写并发框架(四)异步转同步框架spring整合


深入学习

java 锁介绍 √

java synchronized 关键字详解

java volatile 关键字详解

java cas 详解

java 可重入锁 ReentrantLock & jmm √

java ReentrantReadWriteLock 可重入读写锁

StampedLock 读写锁中的最强王者

java dead lock 死锁

自己实现

手写 spinlock 自旋锁 & 可重入锁

手写可重入读写锁

新篇章

必须在以前的基础上进一步提升,主要偏重于源码学习。

Lock 和 Condition 接口源码学习

ReentrantLock 源码学习 √

ReentrantReadWriteLock 可重入读写锁源码学习

AtomicLong 原子性 long 详解

AtomicInteger 源码解析

AtomicReference 源码解析

LongAdder 更高效的原子性 Long 变量

AbstractQueuedSynchronizer AQS 源码详解

AbstractQueuedLongSynchronizer 这个和 AQS 实现基本一样,只是 64 位的 long state 而已。

LockSupport 源码解析

Unsafe 并发锁的基石

striped64 缓存行

工具篇

闭锁(如CountDownLatch),栅栏(如CyclicBarrier),信号量(如Semaphore)和阻塞队列(如LinkedBlockingQueue)

java 异步查询转同步多种实现方式:循环等待,CountDownLatch,Spring EventListener,超时处理和空循环性能优化

CountDownLatch 源码详解

Semaphore 信号量源码深度解析

CyclicBarrier 源码详解

Phaser 源码详解

Exchanger 源码详解

并发数据结构

ConcurrentHashMap

ConcurrentSkipListMap

ConcurrentSkipListSet


CopyOnWriteArrayList 源码

CopyOnWriteArrayList 详解

CopyOnWriteArraySet

ConcurrentLinkedDeque

ConcurrentLinkedQueue

【阻塞队列】

ArrayBlockingQueue

LinkedBlockingDeque

PriorityBlockingQueue

DelayQueue

SynchronousQueue

LinkedTransferQueue

分布式锁

sql 分布式锁

ZooKeeper 分布式锁

Redis 分布式锁 redis lock

Redis Learn-26-Distributed Lock 分布式锁

Redis Learn-27-分布式锁进化史

redis 分布式锁设计 redis lock

数据库锁

MVCC Multi Version Concurrency Control 多版本控制

进阶学习

linux 系统中的 seqlocks 实现原理

seqlock 在 jmm 如何应用?