本公开涉及垃圾收集。具体而言,本公开涉及在垃圾收集期间处理无色根。
背景技术:
1、编译器将根据旨在方便程序员的规范编写的源代码转换成机器代码(也称为“本机(native)代码”或“目标代码”)。机器代码可直接由物理机器环境执行。附加地或替代地,编译器将源代码转换成中间表示(也称为“虚拟机代码/指令”),诸如字节码,其可由能够在各种物理机器环境之上运行的虚拟机执行。虚拟机指令可由虚拟机以比源代码更直接和更高效的方式执行。将源代码转换成虚拟机指令包括根据规范将源代码功能映射到虚拟机功能,这利用了虚拟机的底层资源(诸如数据结构)。通常,程序员经由源代码以简单术语呈现的功能被转换成更复杂的步骤,这些步骤更直接地映射到虚拟机所在的底层硬件支持的指令集。
2、虚拟机通过执行源代码的中间表示(诸如字节码)来执行应用和/或程序。虚拟机的解释器将中间表示转换成机器代码。在执行应用时,会为程序创建的对象分配一定的存储器(也称为“堆存储器”)。垃圾收集系统可以用于自动回收应用不再使用的对象占用的存储器位置。垃圾收集系统使程序员不必明确指定要释放哪些对象。但是,应用在等待垃圾收集操作完成时经常需要暂停。减少这些暂停时间的一种方法是使用至少在垃圾收集循环的一些阶段支持并发垃圾收集操作的垃圾收集器。应用只需要在非并发垃圾收集操作期间暂停,但可以在并发垃圾收集操作期间并发运行(包括在必要时继续分配新对象)。
3、在本部分中描述的方法是可以实行的方法,但不一定是先前已经构想或实行的方法。因此,除非另外指出,否则不应当假设在本部分中描述的任何方法仅仅因为其包括在本部分中就被认为是现有技术。
技术实现思路
1.一种或多种存储指令的非暂态机器可读介质,指令在由一个或多个处理器执行时使得:
2.如权利要求1所述的介质,还存储指令,包括:
3.如权利要求1所述的介质,还存储指令,包括:
4.如权利要求1所述的介质,还存储指令,包括:
5.如权利要求4所述的介质,其中与第一线程相关联的全局状态循环通过所述多个状态,并且所述多个状态的循环内的序列包括第一状态、第二状态、第三状态和第二状态。
6.如权利要求1所述的介质,其中用于将帧状态从第二状态带到第一状态的第一操作集包括以下至少一个:
7.如权利要求1所述的介质,其中将帧状态从第二状态带到第一状态的第一操作集是用于将帧状态从第三状态带到第一状态的第二操作集的子集。
8.如权利要求1所述的介质,其中由第二线程确定第二帧的帧状态的当前值包括:
9.如权利要求1所述的介质,其中由第二线程确定第二帧的帧状态的当前值包括:
10.如权利要求1所述的介质,其中第一线程是gc线程并且第二线程是应用线程。
11.一种方法,包括如权利要求1-10中的任一项所述的操作。
12.一种系统,包括:
13.一种系统,包括: