3

我正在编写一个多线程 Python 应用程序,它在系统上的行为会有所不同,具体取决于 GIL 实现的细节。

我是否有一种通用的方法来测试我正在运行的解释器是否具有 CPython 风格的 GIL?

4

1 回答 1

1

不,stdlib 没有 API 或标志来测试 GIL。现在您可以放心地假设所有版本的 CPython 和 PyPy 都有 GIL,而 IronPython 和 Jython 没有 GIL。

Python 3.3 和更新版本有sys.implementation.name. 在旧版本中,您可以使用platform.python_implementation().

>>> import sys
>>> sys.implementation.name
'cpython'
>>> import platform
>>> platform.python_implementation()
'CPython'
于 2013-09-20T19:05:38.703 回答