【发布时间】:2011-10-21 23:59:50
【问题描述】:
假设我有一个 C 扩展函数,它做的事情完全独立于 Python 解释器。是否有任何理由不发布 GIL?
例如,是否有任何理由不编写这样的代码(除了可读性和避免微优化等问题——这些问题很重要,但与我的问题并不真正相关)?
Py_BEGIN_ALLOW_THREADS
a = 1 + 1;
Py_END_ALLOW_THREADS
很明显,这是一些琐碎的代码,性能可能不会太重要。但是是否有任何性能原因不在此处发布 GIL?还是应该只为更多 CPU 密集型代码发布 GIL?
【问题讨论】:
标签: python multithreading gil python-c-extension