看啥推荐读物
专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
今天看啥  ›  专栏  ›  ImportNew

Synchronized 的一个点,面试官可能都记错了

ImportNew  · 公众号  · Java  · 2021-04-09 11:30
(给ImportNew加星标,提高Java技能)Synchronized 原理知道不?而关于 Synchronized 我去年还专门翻阅 JVM HotSpot 1.8 的源码来研究了一波,那时候我就发现有一个点,一个几乎网上所有文章包括《Java并发编程的艺术》也是这样说的一个点。锁升级想必网上有太多文章说过了,这里提到当轻量级锁 CAS 失败,则当前线程会尝试使用自旋来获取锁。其实起初我也是这样认为的,毕竟都是这样说的,而且也很有道理。因为重量级锁会阻塞线程,所以如果加锁的代码执行的非常快,那么稍微自旋一会儿其他线程就不需要锁了,就可以直接 CAS 成功了,因此不用阻塞了线程然后再唤醒。但是我看了源码之后发现并不是这样的,这段代码在 synchronizer.cpp 中。所以 CAS 失败了之后,并没有什么 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照