5.AQS
Java · 2 篇笔记
- 6.5 5.AQShistorical
1. 是什么 队列同步器,用于实现JUC包的其他并发工具类 2. 如何使用 一般我们不直接使用AQS,而是使用JUC中的其他工具类(如CountDownLatch等),这些工具类覆盖了几乎所有的使用场景,只有在这些工具类无法满足我们的需求时,才去用AQS实现自己的并发工具。 实现的一般的套路如下:
- 6.25 手写AQShistorical
我们可以自己动手写一个简单的AQS,以更好地理解AQS实际的源码 1. 需求 1. 锁是排他的,一旦这个锁被某个线程占有,只要这个锁没被释放,他就不能被其他线程占有。因此需要保存当前占有锁的线程 2. 要有一个单独的字段表示当前锁的状态,是空闲还是已被占有 3. 同一时间有很多线程抢占锁,只有一个线