天道不一定酬所有勤
但是,天道只酬勤

轻量级锁会自旋吗?

GitHub 24k Star 的Java工程师成神之路,不来了解一下吗!

对象加锁的入口在ObjectSynchronizer::enter(h_obj, lock, current); 这个方法中(https://github.com/openjdk/jdk/blob/9583e3657e43cc1c6f2101a64534564db2a9bd84/src/hotspot/share/runtime/synchronizer.cpp#L348 )。

enter方法代码如下:

大概过程就是,如果是轻量级锁,则进行CAS(cas_set_mark(markWord::from_pointer(lock), mark)),否则,直接膨胀(inflate()),这个膨胀的过程中没有自旋的操作。

(全文完)

扫描二维码,关注作者微信公众号
赞(2)
如未加特殊说明,此网站文章均为原创,转载必须注明出处。HollisChuang's Blog » 轻量级锁会自旋吗?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

HollisChuang's Blog

联系我关于我