08 2021 档案
摘要:ReentrantLock是一个可重入的独占锁,内部使用AQS实现。state记录着持有锁的线程的进入同步代码块的次数。 1. AQS的基本实现Sync Sync是一个抽象类,他没有重写tryAcquire方法,但是他多了一个nonfairTryAcquire方法,该方法是一个非公平获取锁资源的方法
阅读全文
摘要:AbstractQueuedSynchronizer 是一个抽象的同步等待队列。juc下面大多数锁都是使用到了AQS。除了获取资源和释放资源的方法外,AQS基本上将其他同步等待队列的逻辑都实现了,比如线程进入队列同步等待、响应中断、唤醒线程等。如果我们想实现一个简单的同步等待队列,那只需要实现AQS
阅读全文