没有网站可以做落地页,海口网站建设哪个好薇,如何在服务器上关闭网站,中国建设科技集团股份有限公司关于三色标记算法
三色标记算法是一种用于垃圾收集得算法#xff0c;主要用于解决在并发垃圾收集中可能出现得对象引用更新问题。在JVM中#xff0c;这种算法主要应用于CMS#xff08;ConcurrentMarkSweep#xff09;收集器和G1#xff08;Garbage-first#xff09;收集…关于三色标记算法
三色标记算法是一种用于垃圾收集得算法主要用于解决在并发垃圾收集中可能出现得对象引用更新问题。在JVM中这种算法主要应用于CMSConcurrentMarkSweep收集器和G1Garbage-first收集器。
三色标记算法将对象分为三种颜色
白色表示对象尚未被垃圾收集器访问过如果在垃圾收集结束时仍然为白色那么该对象将被视为垃圾进行回收。灰色表示对象以及被垃圾收集器访问过但是该对象引用得对象尚未被访问灰色对象是垃圾收集器的工作对象。黑色表示对象已经垃圾收集器访问过且该对象引用得所有对象也都已经被访问黑色对象在本次垃圾收集过程中不再需要被访问。
垃圾收集过程
垃圾收集器首先将所有的对象标记为白色从根对象开始将跟对象标记为灰色垃圾收集器选择一个灰色对象将其引用得所有白色对象标记为灰色将该对象标记为黑色 这以过程一直持续到所有的对象都被标记为黑色此时垃圾收集过程结束所有的白色对象都被视为被垃圾并进行回收。
在并发垃圾收集过程中应用程序可能会更新对象的引用这可能会导致一些已经被标记为黑色的对象重新引用了白色对象这种情况被称为“浮动垃圾”。为了解决这个问题JVM采用了写屏障Write Barrier技术当应用程序试图更新对象引用时写屏障会将线管的对象重新标记为灰色以确保不回遗漏任何需要被访问的对象。