采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师好,有几个小问题想要请教一下: 1、类似ObjectMonitor和ObjectWait对象也是在堆中创建的吗?不管是hotspot源码中创建的对象还是我们自己创建的对象都是在堆中创建的吗? 2、只有使用重量级锁的时候才生成ObjectMonitor吗?如果对象创建的时候隐式创建ObjectMonitor,那万一没有使用锁,ObjectMonitor会不会占用内存啊? 3、原文中说的是obj区域,为什么不是线程获取到对象的Monitor后进入owner区啊?
同学好,1.对象都是在堆中的。堆主要用来存放对象的,栈主要是用来执行程序的2.ObjectMonitor涉及到synchronized升级到重量级锁的过程。synchronized关键字的执行过程还涉及到锁机制的升级过程,升级顺序为 自旋锁、偏向锁、轻量级锁、重量级锁;只有才升级为重量级锁的时候才会启动monitor机制,并且创建对象3.同学能详细描述下问题不,看得不是很懂。
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.8k 27
2.7k 22
1.2k 15
1.4k 14
1.3k 14