AQS分层及自定义锁

之前写了一些锁使用文章,比如ReentrantLock(独占锁),ReentrantReadWriteLock(读写锁)等,也写了一些线程通讯类Condition(条件队列),CountDownLatch(倒计时器),CyclicBarrier(循环栅栏),Semaphore(信号量)等,底层都是使用AQS实现的。本篇文章主要记录AQS内部变量方法的使用及作用,还使用AQS实现了自定义锁的实现。比较简单,如需编写复杂的自定义锁也可以参考ReentrantLock(独占锁),ReentrantReadWriteLock(读写锁)。

阅读更多

Condition原理解析

在之前介绍ReentrantLock锁使用文章中,简单的介绍了Condition在ReentrantLock中的使用,Condition主要用作线程之间的通信,等待,唤醒等功能,但是Condition是如何实现线程之间的通信的呢?本篇文章会罗列出所有Condition的API,然后介绍每个APi的功能并且描述Condition底层的实现原理。

阅读更多