时月oe 2022-04-07 09:15 采纳率: 44.4%
浏览 25
已结题

Java偏向锁批量重偏向问题

Java中的偏向锁具有批量重偏向机制,默认是20
比如创建一个数组List<Object> list = new Vector<>();,然后插入30个Object对象,然后在Thread1中对其进行加锁,此时这30个对象全部偏向于Thread1
当Thread2也想加锁时,如果不存在锁竞争的情况下,前20个对象会被升级为轻量级锁,而剩下的10个会触发批量重偏向机制,重新偏向到Thread2,仍然是偏向锁,不会发生锁膨胀

请问JVM是如何知道应该把后10个Object批量重偏向呢?换句话说,JVM是如何知道应该把哪些对象批量重偏向呢?
视频讲的时候只演示了后面10个会被批量重偏向,就因为他们是一个数组中的原因吗?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月15日
    • 创建了问题 4月7日

    悬赏问题

    • ¥15 c++ gmssl sm2验签demo
    • ¥15 关于模的完全剩余系(关键词-数学方法)
    • ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
    • ¥15 关于移动机器人坐标计算
    • ¥30 模拟电路 logisim
    • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
    • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
    • ¥15 安装quartus II18.1时弹出此error,怎么解决?
    • ¥15 keil官网下载psn序列号在哪
    • ¥15 想用adb命令做一个通话软件,播放录音