第八题应该是想问这个吧? 并发可达性扫描时出现“对象消失”问题的解决办法: 当且仅当两个条件同时满足时,会产生“对象消失”的问题: 标记进行时赋值器插入了一条或多条从存活对象到不可达对象的新引用; 标记进行时赋值器删除了全部从正在扫描对象到未扫描对象的直接或间接引用。 解决办法:增量更新和原始快照。 增量更新:破坏第一个条件,当存活对象插入新的指向不可达对象的引用关系时,就将这个新插入的引用记录下来,等并发扫描结束之后,再将这些记录过的引用关系中的存活对象为根,重新扫描一次。(CMS是基于这个来做并发标记的) 原始快照:破坏第二个条件,当正在扫描的对象删除了指向未扫描对象的引用时,就将这个要删除的引用记录下来,在并发扫描结束之后,再将这些记录过的引用关系中的对象(也就是刚刚说到的正在扫描的对象)作为根,重新扫描一次。(G1是基于这个来实现的)
点赞 5

相关推荐

点赞 评论 收藏
转发
牛客网
牛客企业服务