2021
09-16
09-16
Java面试必备之AQS阻塞队列和条件队列
一.AQS入队规则我们仔细分析一下AQS是如何维护阻塞队列的,在独占方式获取资源的时候,是怎么将竞争锁失败的线程丢到阻塞队列中的呢?我们看看acquire方法,这里首先会调用子类实现的tryAcquire方法尝试修改state,修改失败的话,说明线程竞争锁失败,于是会走到后面的这个条件;这个addWaiter方法就是将当前线程封装成一个Node.EXCLUSIVE类型的节点,然后丢到阻塞队列中;第一次还没有阻塞队列的时候,会到enq方法里面,我们仔细...
继续阅读 >