日期:2014-05-20  浏览次数:20736 次

JVM对象锁
JAVA虚拟机为每个对象和类都关联一个锁,而且还会维护这个锁的引用计数。请问锁和对象(或者类)是怎么关联的,引用计数存放在JVM内存的哪个位置?谢谢!

------解决方案--------------------
锁和对象(或者类)是怎么关联的,有可能具体实现不同,虚拟机规范没有提到那意味着你可以选择你自已实现。
------解决方案--------------------
像在Hotspot vm的实现中,每个对象有两个机器字大小的头,里面包含了锁、gc、hashcode等信息,所以对锁的处理就是对象头中锁状态信息的处理了。
------解决方案--------------------
探讨

像在Hotspot vm的实现中,每个对象有两个机器字大小的头,里面包含了锁、gc、hashcode等信息,所以对锁的处理就是对象头中锁状态信息的处理了。

------解决方案--------------------
看到了<深入理解java虚拟机>一书有相关描述,Mark word
------解决方案--------------------
没必要纠结这个,引用计数只是在有线程访问的时候,就 + 1,没有的时候就 - 1,至于它究竟在那个区内,没必要纠结
------解决方案--------------------
这已经不是jvm规范该管的事儿了,jvm规范只管该表现出什么样的行为,怎么实现,jvm实现者按自己需求来