数美面试
被问到:
JVM堆怎么实现线程安全的?比如两个线程同时访问同一个堆内存空间,JVM是如何处理的?
我说了syn,volatile,JMM,面试官说他想问的不是这些,跟JMM也没关系。面试官说他问的不是业务流程也不是代码实现,就是 JVM层面的东西。
有大佬帮忙解释一下吗,这是个什么东西?#数美科技#
JVM堆怎么实现线程安全的?比如两个线程同时访问同一个堆内存空间,JVM是如何处理的?
我说了syn,volatile,JMM,面试官说他想问的不是这些,跟JMM也没关系。面试官说他问的不是业务流程也不是代码实现,就是 JVM层面的东西。
有大佬帮忙解释一下吗,这是个什么东西?#数美科技#
全部评论
应该是问指针碰撞和空闲列表法吧
我好像理解错面试官意思了,我以为是多个线程同时访问一块内存地址读取或更改数据。面试官问的好像是类加载检查通过之后,需要给对象进行内存分配,这时如果两个线程先后把对象引用指向了同一个内存区域,怎么办。应该是这个吧,哎。
线程分配对象的时候,堆里面会有一些线程私有的空间,这个空间是给线程分配对象用的,能保证线程安全。不知道是不是这个
1.提前分配 相应区域
2.cas自旋
共享区域他还能自动保证线程安全啊
相关推荐
点赞 评论 收藏
分享