qq_六月的古明地觉_0

一年前阅读过关于源码剖析的书, 不过是基于Python2.5的, 很高兴遇到了Python3.x的源码剖析, 正在对着源码一点一点剖析, 感谢老师出了这个专栏。

但还是遇到了一个问题, 记得您说: "那么,被删除的存储单元如何复用呢?Python 压根就没想费这个劲,直接使用新的不就好了吗?"。

不过我隐约记得之前在看那本书的时候, 记得书上画了一张图, 描述entry的unused态、active态、dummy态三者的关系。dummy态无法转为unused态, 但dummy态和active态的entry之间的关系是一个双向箭头。

可不可以这样理解,Python默认是不会管处于dummy态的entry的, 只是做了一个逻辑删除, 但是内存还在占用这。

如果来了一个新的entry, 并且没有发生冲突, 那么Python就存在新的位置上。但如果发生了冲突, 沿着"冲突探测链"查找的时候, 碰巧发现了一个处于dummy态的entry, 那么就把这个处于dummy态的entry给换成新存储的entry。

此时entry由dummy态变成了active态, 只不过此时不一定是同一个entry了。可以这样理解吗

讲师回答 / fasionchan

完全正确。dummy状态其实也是特殊的unused,之所以不能转成直接转成unused是因为需要维护冲突探测链。另外,Python 3内建对象与Python 2相比变化很大,特别是dict、str等对象,学习建议以最新版本源码为准。

python源码深度剖析_Python 源码深度剖析相关推荐

  1. python源码深度剖析_Python源码剖析——深度探索动态语言核心技术 | 学步园

    8.3  Python虚拟机的运行框架 当Python启动后,首先会进行Python运行时环境的 初始化.注意这里的运行时环境是一个与上一节剖析的执行环境不同的概念.运行时环境是一个全局的概念,而执行 ...

  2. python 源码编译教程_python源码编译

    尝试通过源码自己编译 Python,使用的系统是 Ubuntu14.04 LTS. 首先去官网下载源码,地址:源码下载.下载完成之后,解压源码: 1tar -zxvf Python-2.7.12.tg ...

  3. python源码剖析_Python源码剖析 - 对象初探

    01 前言 对象是 python 中最核心的一个概念,在python的世界中,一切都是对象,整数.字符串.甚至类型.整数类型.字符串类型,都是对象. 02 什么是PyObject Python 中凡事 ...

  4. python定义类的程序_python扫码签到程序python中如何定义类

    什么是类? 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 什么是方法? 类中的函数即为方法 如何定义一个类? 定义类,语法格式如下: < ...

  5. python快乐编程百度云_Python趣码快乐编程

    Python的安装/2 n 下载安装相应版本的Python安装包/2 n 验证Python是否安装成功/4 n 编辑器PyCharm的安装和使用/5 n PyCharm的下载与安装/5 n PyCha ...

  6. python 字节码指令含义_python 字节码指令列表

    /*********************************************************** KVS:文件:opcode.h swith字节码指令的文件:ceval.c * ...

  7. python中的ascii码是啥_python ascii码到u

    如果您不了解底层机制,很难解释UnicodeErrors.你真的应该读其中的一个或两个 简而言之,Unicode码位是一个抽象的"东西",表示一个字符1.程序员喜欢使用它们,因为我 ...

  8. python判断素数的函数_Python素数prime函数练习_Python源码实操

    Python素数prime函数练习_Python源码实操 素数prime函数练习 1) 写一个函数isprime(x) 判断x是否为素数,如果是素数,返回True,否则返回False def ispr ...

  9. 【深度挖掘 RocketMQ底层源码】「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(Pull模式-下)

    承接[[深度挖掘 RocketMQ底层源码]「底层源码挖掘系列」透彻剖析贯穿RocketMQ的消费者端的运行核心的流程(Pull模式-上)] pullBlockIfNotFound方法 通过该方法获取 ...

  10. python爬取天气预报源代码_python抓取天气并分析 实例源码

    [实例简介] Python代码抓取获取天气预报信息源码讲解.这是一个用Python编写抓取天气预报的代码示例,用python写天气查询软件程序很简单.这段代码可以获取当地的天气和.任意城市的天气预报, ...

最新文章

  1. 《MonkeyRunner原理剖析》第九章-MonkeyImage实现原理 - 概览
  2. 常见电子元件实物照片
  3. Lambda表达式——注重过程的编程思想
  4. Django REST framework【学习内容】
  5. 机器人被抢走ntr_(科普)当被NTR剧情虐到的时候怎么办
  6. excel打开空白不显示内容 没有隐藏_这些Excel快捷键你都会吗?
  7. python常用包有哪些品牌_python 常用包总结
  8. python数值积分_python实现数值积分的Simpson方法实例分析
  9. undefined reference to `inflateInit2_'
  10. android bugly 错误分析,使用 Robolectric 单元测试运行时 bugly 初始化异常
  11. 2019通信工程师的职业发展前景和方向
  12. 值得分享的炒白银技巧有哪些?
  13. c语言编程计算缴税,C语言编写一个计算个人所得税的程序,要求输入收入金额,能够输...
  14. SSH localhost 报错解决方案
  15. android 控件发光_Android自定义View之边框文字、闪烁发光文字
  16. 读书笔记----10日摘抄整理(12)
  17. 执行xpath时提示,需要命名空间管理器或XsltContext。此查询具有前缀、变量或用户定义的函数
  18. Servlet 执行原理
  19. 计算机睡眠后键盘鼠标无法唤醒,电脑休眠键鼠无法唤醒?解决键盘鼠标无法唤醒电脑待机的问题...
  20. 生命如歌-五年级每日一记

热门文章

  1. 串口通信实例vb.net serialport
  2. JSP程序设计第二版--附带实验代码
  3. CMOS模拟集成电路版图设计课程
  4. 回溯(backtrack)
  5. DLL注入之修改PE静态注入
  6. 浅蓝色学校网站模板_学校网站源码_适用高中,中学,小学学校网站建设
  7. 苹果匠艺:乔布斯身边的天才
  8. Running Hero.
  9. 原生JavaScript实现幻灯片效果
  10. 如何通过adb命令将apk包导入到安卓设备上