是否有通用的方法来测试GIL的存在?

时间:2013-09-12 22:34:52

标签: python cpython gil

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

我是否有通用的方法来测试我正在运行的解释器是否具有CPython样式的GIL?

1 个答案:

答案 0 :(得分: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'