一 AQS
1.1 AQS的介绍
AQS : 抽象队列同步器。主要是用来解
决锁分配给谁的问题。
1.2 代码逻辑
AQS 使用
一个volitile的int类型变量
来表示同步状态。通过内置
的FIFO队列来完成资源获取的排队
工作,并将每条要去抢占资源的线程封装成一个Node节点来
实现锁的分配
,
通过cas来
实现对state值的修改。
1.3 AQS的Acquire方法
二 公平锁和非公平锁
2.1 公平锁和非公平锁的区别联系
非公平锁比公平锁少一个判断:
!hasQueuedPredecessors() 此方法判断是否需要排队。
公平锁:持有锁的线程执行完,从等待队列中按照先来先到,先执行原则,等待队列的先到线程获取资源,释放锁的这个线程排到等待队列的后面。
非公平锁: 不管是否有等待队列,不讲武德,如果能获取锁,则立刻执行。
版权声明:本文为u011066470原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。