V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zsh1995
V2EX  ›  Java

CMS 收集器如何处理 WeakReference ?

  •  
  •   zsh1995 · 2019-03-19 23:38:40 +08:00 · 1783 次点击
    这是一个创建于 2076 天前的主题,其中的信息可能已经有所发展或是发生改变。

    CMS 有个并发清理阶段,会清理之前被标记的内存。而 WeakReference 每次垃圾回收时都会被标记清除(?是这样吗),如果在并发清理阶段,用户调用了 WeakReference.get() ,并建立起一个强引用,那么会不会出问题呢?

    1 条回复    2019-03-20 09:02:42 +08:00
    liangdu
        1
    liangdu  
       2019-03-20 09:02:42 +08:00 via Android
    纠正一下,gc 标记的是存活的对象,在对象头部的 markword 状态字里面,另外有一个浮动垃圾的概念,你这种说话那 wr 会变成浮动垃圾,浮动垃圾有个重要的 jvm 参数,叫什么忘了,叫什么 initial 什么 occupy 什么来的,就是用来控制 cms 启动的时机(当容量达到多少时就会启动)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2642 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 05:47 · PVG 13:47 · LAX 21:47 · JFK 00:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.