不说吴亦凡,谈谈垃圾收集器

Posted 张夷陵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不说吴亦凡,谈谈垃圾收集器相关的知识,希望对你有一定的参考价值。

目录

概念

基本知识

Mark-Sweep垃圾收集器

1.标记阶段伪代码:

2.清除阶段伪代码


概念

  垃圾收集器是一种动态内存分配器,它自动释放程序不再需要的已分配块。这些块被称为垃圾。自动回收堆存储的过程叫做垃圾收集

基本知识

  垃圾收集器将内存视为一张有向可达图,该图中有一个根节点,所有的变量都会被根节点引用。形式如下图所示:

  本文仅讨论John McCarthy独创的Mark-Sweep(标记清除)算法。

Mark-Sweep垃圾收集器

  Mark-Sweep垃圾收集器由标记阶段和清除阶段组成。

标记阶段:通过广度扫描标记与根节点相关(所有可达的和已分配的后继)的结点

清除阶段:将没有被标记的块释放

1.标记阶段伪代码:

void mark(ptr p)
{
	if((b=isPtr(p))==NULL)//判断块是否已分配
		return;
	if(blockMarked(b))//判断块是否已被标记
		return;
	markBlock(b);//标记块
	len=length(b);
	for(i=0;i<len;i++)
		mark(b[i]);
	return;
}

2.清除阶段伪代码

void sweep(ptr b,ptr end)
{
	while(b<end){
		if(blockMarked(b))//判断块是否已被标记
			unmarkBlock(b);//取消标记
		else if(blockAllocated(b))//判断块是否已分配
			free(b);//释放垃圾
		b=nextBlock(b);//返回堆中块的后继
	}
	return;
}

以上是关于不说吴亦凡,谈谈垃圾收集器的主要内容,如果未能解决你的问题,请参考以下文章

李易峰吴亦凡关系交恶

你的python挑战吴亦凡rap,渣男实锤

网络安全视角看吴亦凡事件:教科书级的“中间人攻击”

吴亦凡凉凉了,李雪琴正当红! Hadoop凉凉了,Spark正当红!

只有硬货!工厂元单!吴亦凡幂等炒多大咖上身!连帽牛仔夹克!情侣款!

面试官:谈谈你对G1垃圾收集器都有哪些了解?