2013-09-12 4 views
2

Я пишу многопоточное приложение Python, которое будет вести себя по-разному в системах, в зависимости от деталей реализации GIL.Есть ли общий способ проверить наличие GIL?

Есть ли способ общего назначения для проверки того, работает ли intrereter, с которым я работаю, стиль GIL в стиле CPython?

ответ

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' 
Смежные вопросы