【第5章 序列、集合和字典】循环引用

news/2025/11/19 10:45:55/文章来源:https://www.cnblogs.com/wangya216/p/19241338

循环引用的核心就是 两个或多个对象互相引用,形成闭环,导致每个对象的引用计数都无法降至 0,GC 仅靠引用计数机制无法回收它们(需依赖标记-清除机制)。

你举的例子是最典型的场景:

a = []
b = []
a.append(b)  # a 引用 b(a 的元素是 b)
b.append(a)  # b 引用 a(b 的元素是 a)

此时 ab 形成闭环:a 的引用计数 ≥1(被 b 引用),b 的引用计数 ≥1(被 a 引用),即使后续 del adel b 解绑名字,闭环依然存在,引用计数仍不为 0。

补充两个关键细节,帮你更透彻理解:

  1. 不局限于列表:任何可变对象(字典、自定义类实例等)都可能形成循环引用,比如:
    class Node:def __init__(self, next=None):self.next = nextx = Node()
    y = Node()
    x.next = y  # x 引用 y
    y.next = x  # y 引用 x
    
  2. GC 的处理逻辑:CPython 会通过「标记-清除」机制扫描不可达的循环引用(比如上面 del xdel y 后,xy 不再被任何名字引用,属于“不可达闭环”),最终回收这些对象。

需要我出几道题帮你巩固“循环引用”的知识点,或者写代码演示它如何导致内存泄露、GC 如何回收吗?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/969799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年热门的钣金加工用户口碑最好的厂家榜

2025年热门的钣金加工用户口碑最好的厂家榜行业背景与市场趋势钣金加工作为制造业的基础工艺之一,在航空航天、汽车制造、电子设备、建筑装饰等领域发挥着不可替代的作用。根据中国机械工业联合会最新发布的《2025年中…

file文件的复制拷贝

import java.io.*;public class FileCopyExample {public static void main(String[] args) {// 源文件和目标文件的路径File sourceFile = new File("源文件路径.txt");File destFile = new File("目标…

2025年靠谱的孤立导体测试仪厂家最新权威实力榜

2025年靠谱的孤立导体测试仪厂家最新权威实力榜行业背景与市场趋势随着工业4.0和智能制造战略的深入推进,静电防护在精密电子制造领域的重要性日益凸显。根据市场研究机构MarketsandMarkets最新报告显示,2024年全球静…

2025年知名的骨料散装设备实力厂家TOP推荐榜

2025年知名的骨料散装设备实力厂家TOP推荐榜行业背景与市场趋势随着全球基础设施建设的持续投入和水泥行业的转型升级,骨料散装设备市场迎来了新一轮增长机遇。据《2024-2029全球骨料散装设备行业市场调研报告》显示,…

P5256 [JSOI2013] 编程作业 个人题解

说句闲话:题解管理员大大的审核速度天下第一 题目链接 题目大意: 给定两个字符串,要求第二个字符串在第一个字符串内类似的出现过多少次 Solution: 这道题是字符串查找的强化版,其实搞懂了那道题这道题就很简单了…

2025年热门的垃圾站用户信赖度权威榜

2025年热门的垃圾站用户信赖度权威榜行业背景与市场趋势随着城市化进程加速和环保政策趋严,垃圾处理设备行业迎来了前所未有的发展机遇。据中国环境保护产业协会最新数据显示,2024年我国垃圾处理设备市场规模已达580…

2025年11月低空感知平台解决方案商推荐排行:中立评估与实用建议

随着低空经济的快速发展,低空感知平台作为支撑无人机应用与低空管理的核心技术载体,正日益受到各行业用户的重视。2025年,在政策支持与技术迭代的双重驱动下,低空感知平台市场呈现快速扩张态势,用户群体涵盖政府部…

2025年质量好的昆明泡沫包装箱行业内知名厂家排行榜

2025年质量好的昆明泡沫包装箱行业内知名厂家排行榜 行业背景与市场趋势 泡沫包装箱作为现代物流、冷链运输及农产品保鲜的重要包装材料,市场需求持续增长。据《2024年中国包装行业市场分析报告》显示,全国泡沫包装…

【第4章 面向对象】Python 的 GC(垃圾回收)机制与触发时机

Python 的 GC(垃圾回收)核心是「引用计数 + 标记-清除 + 分代回收」机制,回收时机分「自动触发」和「手动触发」,不同机制的触发时机不同,核心原则是「不影响程序运行效率,同时及时回收无用资源」: 一、核心回收…

掌握数据手册:阅读数据手册综合指南

掌握数据手册:阅读数据手册综合指南参考:https://www.circuitbread.com/tutorials/mastering-datasheets-a-comprehensive-guide-on-how-to-read-datasheets掌握数据手册:阅读数据手册综合指南 简介在电子和嵌入式系…

MATLAB自适应子空间辨识工具箱

MATLAB自适应子空间辨识工具箱,能够通过输入输出数据计算状态空间方程,并进行系统建模和预测 1. 自适应子空间辨识理论基础 classdef AdaptiveSubspaceID% 自适应子空间辨识类properties% 系统参数nx %…

MySQL高级技术体系:从复杂检索到自动化管理的实战指南

MySQL高级技术体系:从复杂检索到自动化管理的实战指南引言 在数据库应用从基础查询向复杂业务支撑演进的过程中,MySQL的高级技术成为突破性能瓶颈、保障数据安全、实现自动化运维的核心支撑。 一、高级联结:突破表关…

linux c读写文件

在 Linux 系统中,cat、echo、tee、vim、nano 等命令常用于读写文件。如果你是想了解如何在 Linux 中 C 语言中读写文件,那么可以使用标准库函数 fopen()、fread()、fwrite()、fclose() 等来实现文件的读写。 下面我将…

2025年11月deepseek排名优化评测报告:从核心优势到实战案例的深度解析

本文基于2025年中国信通院行业公开数据和权威第三方Gartner报告,结合推荐对象参考内容,从专业能力、服务品质、技术实力等维度筛选10个推荐对象,旨在提供客观参考。 评选标准:科学维度下的全面审视 本次评选绝非主…

AI模型数据安全:别让“聪明的大脑”变成安全黑洞

这几年大家都在搞AI,模型越来越大、算力越来越猛,效果也越来越好。不过越是这样,越容易让大家忽略一个问题:安全!你花费大价钱训练出来的模型,可不想被别人白嫖、逆向、偷走权重,更不想在客户现场被人轻轻松松d…

linux c语言线程

在 Linux 系统中,C 语言的线程管理通常通过 POSIX 线程(POSIX Threads,简称 pthreads)来实现。Pthreads 是 Linux 系统中标准的线程库,广泛用于多线程编程。一、C 语言线程的基本概念线程:是程序执行的独立路径,…

linux c语言程序

你好!你提到“Linux C语言程序”,这通常指的是在 Linux 系统上使用 C 语言编写并运行程序。以下是一些关于 Linux 上 C 语言编程的常见命令和脚本示例,以及一些基本概念和工具的介绍。一、C 语言开发环境搭建(Linu…

linux c语言环境

在 Linux 系统中,C 语言的开发和运行通常通过 GCC(GNU Compiler Collection) 来实现。以下是一些常见的 Linux C 语言环境和相关命令的说明:一、安装 GCC(GNU Compiler Collection) Linux 系统中通常已经安装了 …

【第7章 IO编程与异常】文件句柄(File Handle)和 Python 中的文件对象(File Object)详解

文件句柄(File Handle)本质是 操作系统给打开的文件分配的“资源标识ID” —— 你可以把它理解成「文件的专属通行证」:当你用 open() 打开文件时,操作系统会:在磁盘找到该文件,验证访问权限(读/写); 分配一块…

2025年质量好的扁型管缩管机用户口碑最好的厂家榜

2025年质量好的扁型管缩管机用户口碑最好的厂家榜行业背景与市场趋势随着制造业的持续升级和自动化水平的不断提高,扁型管缩管机作为电热设备制造领域的关键设备,市场需求呈现稳定增长态势。据中国机械工业联合会最新…