V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Bingchunmoli
V2EX  ›  程序员

为什么 jdk15 准备废弃偏向锁

  •  
  •   Bingchunmoli · 38 天前 · 2037 次点击
    这是一个创建于 38 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在默认情况下禁用偏向锁定,并弃用所有相关命令行选项。目标是确定是否需要继续支持偏置锁定的 高维护成本 的遗留同步优化,HotSpot 虚拟机使用该优化来减少非竞争锁定的开销。 尽管某些 Java 应用程序在禁用偏向锁后可能会出现性能下降,但偏向锁的性能提高通常不像以前那么明显。 该特性默认禁用了 biased locking(-XX:+UseBiasedLocking),并且废弃了所有相关的命令行选型(BiasedLockingStartupDelay, BiasedLockingBulkRebiasThreshold, BiasedLockingBulkRevokeThreshold, BiasedLockingDecayTime, UseOptoBiasInlining, PrintBiasedLockingStatistics and PrintPreciseBiasedLockingStatistics

    5 条回复    2022-05-29 12:21:48 +08:00
    FreeEx
        1
    FreeEx  
       37 天前 via iPhone   ❤️ 2
    为了让八股文更少一点
    a22271001
        2
    a22271001  
       37 天前 via Android
    @FreeEx 相反,八股文会多一条🤣
    heiher
        3
    heiher  
       37 天前 via Android   ❤️ 2
    因为早期硬件执行锁操作很慢,并且大部分情况下只有固定一个线程会进出临界区,所以偏向锁在对线程偏向后再进出临界区的开销较小,达到优化目的。但该优化在解除线程偏向时开销明显,所以对于真存在竞争的情况是不利的。那么随着多核硬件的普及,业务并行化的提高,现代硬件执行锁操作效率也有明显提升,之前的假设已不那么容易成立,所以往往达不到优化的效果,废弃偏向锁。(具体问题具体分析
    lsry
        4
    lsry  
       37 天前
    Kiriri
        5
    Kiriri  
       37 天前
    八股文+1
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2912 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:52 · PVG 21:52 · LAX 06:52 · JFK 09:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.