天道不一定酬所有勤
但是,天道只酬勤
Hollis出品的全套Java面试宝典不来了解一下吗?

轻量级锁会自旋吗?

Hollis出品的全套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()),这个膨胀的过程中没有自旋的操作。

赞(3)
如未加特殊说明,此网站文章均为原创,转载必须注明出处。HollisChuang's Blog » 轻量级锁会自旋吗?
Hollis出品的全套Java面试宝典不来了解一下吗?

评论 抢沙发

HollisChuang's Blog

联系我关于我