版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
版权
lock同时被 2 个专栏收录
2 篇文章0 订阅
订阅专栏
23 篇文章0 订阅
订阅专栏
非公平锁:
首先会在 lock方法调用加锁的时候去抢锁(公平锁调用lock不会上来就去拿锁)
如果加锁失败则去看为什么失败(是否锁被人持有),在判断的时候如果锁没有被人持有非公平锁就会直接去加锁(不会判断是否有人排队),成果则进入同步块,失败则park(真正的排队)
公平锁:
第一次加锁的时候,他不会去尝试加锁,它回去看一下前面有没有人排队没如果有人排队,则进入队列(并不等于排队),然后还不会立刻等待,还会再次看一下有没有拿锁的资格(前面的元素是否为 head),如果有资格(前面那个人正好是head)则继续拿锁,成功则执行同步块;失败则park(排队)
收藏
一键三连
扫一扫,分享海报
专栏目录