java 公平锁与非公平锁区别

ReentrantLock默认为非公平锁,非公平锁比公平锁效率高

非公平锁抢锁源码

公平锁抢锁源码

区别一:源码对比,发现非公平锁先cas一次自旋抢锁,自旋抢锁失败,会执行acquire(1)

acquire方法源码

非公平锁tryAcquire主要执行方法

公平锁tryAcquire主要执行方法

区别二:源码对比,发现公平锁考虑AQS锁队列中等待的线程,无队列才进行cas自旋操作

 

 

 


版权声明:本文为Growing_hacker原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。