专题创作目的

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

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

历史回顾

基础知识

java 锁基本概念

java 对象锁

java 可重入锁

异步转同步

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

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

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

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

开源代码

The async tool for java.(Java 多线程异步并行框架,基于 java 字节码,支持注解。)

The distributed lock tool for java.(java 实现开箱即用基于 redis 的分布式锁,支持可重入锁获取。内置整合 spring、springboot。)


深入学习

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 源码解析

基础数据结构

JCIP-14-双端队列与工作密取

双端队列之 ArrayDeque

binary heap 二叉堆介绍

PriorityQueue 优先级队列

优先级队列与堆排序

JCIP-12-环形队列 CircularQueue 与 CircularBlockingQueue

并发基础知识

轻松学习多线程 00-多线程学习概览

JCIP-00-并发概览

同步数据结构

同步类数据结构

并发数据结构


CopyOnWriteArrayList 详解

CopyOnWriteArraySet 入门及源码详解

java 从零实现 CopyOnWriteHashMap

双端队列之 ConcurrentLinkedDeque

ConcurrentLinkedQueue 入门及源码分析


ConcurrentHashMap 源码详解

跳跃表(SkipList)

ConcurrentSkipListMap

ConcurrentSkipListSet


【阻塞队列】

已发布-阻塞队列(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,超时处理和空循环性能优化

闭锁 CountDownLatch 使用入门及源码详解

Semaphore 信号量源码深度解析

CyclicBarrier 源码详解

Phaser 源码详解

Exchanger 源码详解

底层原理

LongAdder 更高效的原子性 Long 变量

AbstractQueuedSynchronizer AQS 源码详解

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

LockSupport 源码解析

Unsafe 并发锁的基石

striped64 缓存行

分布式锁

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 如何应用?

paper 算法篇

内存相关

缓存行

理解CPU Cache和Java对象内存布局。

Java8使用@sun.misc.Contended避免伪共享 整理一篇