python | 标记清除 发表于 2022-12-29 分类于 python , 进阶 , 内存管理 阅读次数: Valine: python 标记清除。 循环引用 & 交叉感染12345678v1 = [11,22,33] # refchain 中创建一个列表对象,引用计数器 1v2 = [44,55,66] # refchain 中创建一个列表对象,引用计数器 1v1.append(v2)v2.append(v1)del v1del v2 标记清除为了解决引用计数器循环引用的不足。 在 python 的底层再去维护一个链表,这个链表专门放那些可能存在循环引用的对象。 列表 字典 元组 集合 所以,此时,内存中有两个链表了。 python 在某些情况下,会扫描可能存在循环引用的链表,检查是否有循环引用。 如果有,则让双方的引用计数器 -1,如果引用计数器为 0 则进行垃圾回收。 请我喝杯咖啡吧~ 打赏 微信支付 支付宝