CPython 源码阅读 - send/yield

本文代码取自 CPython 3.6.3, commit sha 为 2c5fed86e0cbba5a4e34792b0083128ce659909d 先放一个 Generator 的示例 def g(): yield 2 gen = g() 每一 Generator 对象都含有几个特别的属性,可以从万能的 inspect 模块的文档 中找到 gi_ »

GIL 究竟是什么

本文代码取自 CPython 3.6.3, commit sha 为 2c5fed86e0cbba5a4e34792b0083128ce659909d 本篇文章分析 Python 的多线程实现,侧重于 GIL 方面。由于本人 C 水平及 Python 水平有限,理解可能会有偏差,如果发现希望能够邮件告知 Abstract 先来看 GIL 的定义 »

CPython 源码阅读 - dict

本文所用代码取自 CPython 3.6.3 commit sha 2c5fed86e0cbba5a4e34792b0083128ce659909d 和 dict 相关的源码大致位于三个文件 Include/dictobject.h Objects/dict-common.h Objects/dictobject.c 首先确保阅读自带说明文件 Objects/dictnotes.txt,这里摘取部分的内容 dict »