我正在编写一个多线程Python应用程序,它在系统上的行为会有所不同,具体取决于GIL实现的细节。
我是否有通用的方法来测试我正在运行的解释器是否具有CPython样式的GIL?
答案 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'