ToB企服应用市场:ToB评测及商务社交产业平台

标题: 美团一面:说说synchronized的实现原理? [打印本页]

作者: 罪恶克星    时间: 4 天前
标题: 美团一面:说说synchronized的实现原理?
在Java中,synchronized是用于实现线程同步的关键字,其底层实现原理涉及对象头、监督器锁(Monitor)以及锁升级机制。以下是详细剖析:
<hr> 1. 对象头与Mark Word

每个Java对象在内存中由三部分组成:

Mark Word是对象头的一部分,记载了对象的锁状态、哈希码、分代年龄等信息。在32位JVM中,Mark Word占4字节;64位JVM中占8字节。不同锁状态下,Mark Word的内容会动态变化:
    锁状态   存储内容         无锁   哈希码、分代年龄、是否方向锁(0)       方向锁   线程ID、Epoch、分代年龄、方向标记(1)       轻量级锁   指向栈中锁记载的指针(Lock Record)       重量级锁  
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4