2016-04-27 Li Shuai
GIL 熟悉Python的人对GIL这货可定都不陌生, 全局解释器锁(Global Interpreter Lock)简称GIL, 这货是 Python多线程的核心机制。由于Python的线程实际是操作系统的原生线程,多个线程同时执行同一段字节码可能 会导致很多问题(比如: 内存管理的引用计数需要线程安全机制的保护),于是使用GIL这把大锁锁住其他线程,保 证同一时刻只有一个线程可以解释执行字节码。关于GIL的更多分析, 可以看David Beazley大神的研究。本文主要分析下CPython的GIL在Linux上 基于pthread的实现细节,看完这些源码后能够对GIL有更深入的理解。 GIL的定义 有人可能会想,从GIL的 继续阅读 »
2018-03-10 Xie Jingyi
写在前面 作者电脑有 4 个 CPU,因此使用 4 个线程测试是合理的 本文使用的 cpython 版本为 3.6.4 本文使用的 pypy 版本为 5.9.0-beta0,兼容 Python 3.5 语法 本文使用的 jython 版本为 2.7.0,兼容 Python 2.7 语法 若无特殊说明,作语言解时,python 指 Python 语言;作解释器解时,python 指 cpython more 本文使用的测速函数代码如下: ```python from future import print_function import sys PY2 = sys.version_info[0] == 2 因为 Jython 继续阅读 »