Java AQS 详解
时间: 2024-02-26 19:39:19 浏览: 121
Java AQS详解.docx
当线程需要获取某个锁的时候,如果该锁已经被其他线程占用,那么该线程就必须阻塞等待,直至锁被释放。AQS (AbstractQueuedSynchronizer) 类是 java.util.concurrent 包中提供的锁的基础框架,它是实现锁和其他同步工具的基础;同时,它也是 ReentrantLock、Semaphore、CountDownLatch 等高级同步工具的底层实现。AQS 的核心思想就是队列+状态,用队列维护获取该锁的所有线程,用内部状态来控制哪个线程可以获取到该锁;当有线程释放了该锁时,AQS 会自动将队头的线程唤醒,从而实现多线程的协作。
阅读全文