[发明专利]用于垃圾回收的并行标记处理方法及装置有效
申请号: | 201610187840.2 | 申请日: | 2016-03-29 |
公开(公告)号: | CN107239406B | 公开(公告)日: | 2021-03-09 |
发明(设计)人: | 吴哲锋;杨江华 | 申请(专利权)人: | 斑马智行网络(香港)有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 上海知锦知识产权代理事务所(特殊普通合伙) 31327 | 代理人: | 段洁汝 |
地址: | 中国香港九龙长沙湾道*** | 国省代码: | 香港;81 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 垃圾 回收 并行 标记 处理 方法 装置 | ||
1.一种用于垃圾回收的并行标记处理方法,其特征在于,预设的N个标记线程中的每个标记线程至少包括:1个私有栈,所述方法应用在每个标记线程中,其中,应用在第一标记线程中的所述方法包括以下步骤:
第一标记线程根据线程启动指令,从第一私有栈中取出预先压入的第一对象的第一指针;
所述第一标记线程遍历所述第一指针指示的所述第一对象引用的第二对象,并根据预设的N个标记线程与虚拟机堆中内存块的对应关系对所述第二对象进行第二标记处理。
2.如权利要求1所述的方法,其特征在于,所述根据预设的N个标记线程与虚拟机堆中内存块的对应关系对所述第二对象进行第二标记处理,包括:
所述第一标记线程根据所述对应关系,判断是否负责对当前处理的第二对象所在的内存块P1进行标记处理;
如果所述第一标记线程负责对所述内存块P1进行标记处理,则将当前处理的第二对象的第二指针压入到所述第一私有栈中;
所述第一标记线程判断是否成功将所述第二指针压入到所述第一私有栈中;
如果所述第一标记线程未能成功将所述第二指针压入到所述第一私有栈中,则将所述内存块P1的位图中、与该第二对象对应的状态标记为溢出状态。
3.如权利要求2所述的方法,其特征在于,还包括:
设置与所述内存块P1对应的溢出标志。
4.如权利要求2所述的方法,其特征在于,所述第一标记线程判断是否成功将所述第二指针压入到所述第一私有栈中之后,还包括:
如果所述第一标记线程成功将所述第二指针压入到所述第一私有栈中,则继续对所述第一指针对应的下一个第二对象进行处理。
5.如权利要求2所述的方法,其特征在于,预设的N个标记线程中每个标记线程还包括:与其他(N-1)个标记线程对应的(N-1)个公用输出队列;
所述判断是否负责对当前处理的第二对象所在的内存块P1进行标记处理之后,还包括:
如果所述第一标记线程不负责对所述内存块P1进行标记处理,确定标记线程M负责对所述内存块P1进行标记处理;
将所述第二指针压入到所述第一标记线程中与所述标记线程M对应的公用输出队列M中;
所述第一标记线程判断是否成功将所述第二指针压入到所述公用输出队列M中;
如果所述第一标记线程成功将所述第二指针压入到所述公用输出队列M中,则继续对所述第一指针对应的下一个第二对象进行处理。
6.如权利要求5所述的方法,其特征在于,预设的N个标记线程中每个标记线程还包括:1个缓存队列;
所述第一标记线程判断是否成功将所述第二指针压入到所述公用输出队列M中之后,还包括:
如果所述第一标记线程未能成功将所述第二指针压入到所述公用输出队列M中,则把所述第二指针压入到所述第一标记线程中的第一缓存队列中;
所述第一标记线程判断是否成功将所述第二指针压入到所述第一缓存队列中;
如果所述第一标记线程未能成功将所述第二指针压入到所述第一缓存队列中,则将所述内存块P1的位图中、与当前处理的第二对象对应的状态标记为溢出状态。
7.如权利要求6所述的方法,其特征在于,还包括:
设置与所述内存块P1对应的溢出标志。
8.如权利要求7所述的方法,其特征在于,所述第一标记线程判断是否成功将所述第二指针压入到所述第一缓存队列中之后,还包括:
如果所述第一标记线程成功将所述第二指针压入到所述第一缓存队列中,则继续对所述第一指针对应的下一个第二对象进行处理。
9.如权利要求2-8任一所述的方法,其特征在于,所述第一标记线程根据所述对应关系,判断是否负责对当前处理的第二对象所在的内存块P1进行标记处理之前,还包括:
查询所述内存块P1的位图中与该第二对象对应的状态标记;
如果与该第二对象对应的状态标记为未标记状态,则将与该第二对象对应的状态修改为压入状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于斑马智行网络(香港)有限公司,未经斑马智行网络(香港)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610187840.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种源代码中无效函数的查找方法和设备
- 下一篇:一种内存的无线访问方法和装置