锁原理之AQS

目录

目标

实现线程安全的hashmap。
实现简单的缓存组件。
如何使用读写锁
AQS原理。

ReadWriteLock

使用场景:

  1. 对集合操作可以实现并发读,互斥写,即给读加读锁,写加写锁。

改进提升互斥锁的性能。
锁降级:获取写锁后,可以在获取读锁,即拿着写锁,获取读锁。
锁原理之AQS
基本原理
锁原理之AQS

AQS抽象队列同步器

对加锁解锁的公共代码的抽象,try方法留给用户自己实现。
提供公共的逻辑,真正的加锁逻辑,由用户自己实现,AQS不会实现真正的抢锁逻辑。
可以理解为实现锁的一个工具类,利用模版方法模式抽出公共代码。
读写锁是由AQS来实现的。
锁原理之AQS

ReadWriteLock用一个int存储了两个count值

锁原理之AQS