zoukankan      html  css  js  c++  java
  • python 垃圾回收

    任何对象,当引用计数变为0的时候都会被立刻清除。

    而对象,分为可变对象,和不可变对象,不可变对象有个特点:其内部不包含指向其他对象的引用。而可变对象,比如列表[1,2],他内部包含两个整数对象的引用。也可以说,列表对象[1,2]引用了整数对象1和整数对象2

    所以,根据以上特点,不可变对象不可能产生循环引用。所谓循环引用就是对象a引用了对象b,对象b又引用了对象a。a和b之间就是循环引用

    例如:

    1 a = [1,2]
    2 b = [3,4]
    3 a.append(b)
    4 b.append(a)#到处,a和b的引用计数都是2

    上面的例子很重要,a,b所引用的对象的引用计数均为2,拿a所引用的对象来说来说,他除了被a引用,还被b所引用的对象所引用。

    del a#到此,原来a所引用的对象现在只被b所引用的对象所引用,引用计数为1
    del b #到处,原来b所引用的对象现在只被原来的a所引用的对象所引用,引用计数为1
  • 相关阅读:
    用js遍历生成数独可行数据(未优化版本)
    JS生成tips小工具
    Iframe使用
    二级指针作输入的三种内存模型
    货品的进出库模型
    约瑟夫问题
    vector
    CUDA并行简单加法
    第一个CUDA程序
    在Ubuntu下安装、配置和测试cuda[复制]
  • 原文地址:https://www.cnblogs.com/saolv/p/8402957.html
Copyright © 2011-2022 走看看