GIL 実装の詳細に応じて、システム上で異なる動作をするマルチスレッド Python アプリケーションを作成しています。
私が実行しているインタプリタが CPython スタイルの GIL を持っているかどうかをテストするための一般的な方法はありますか?
いいえ、stdlib には GIL をテストするための API やフラグがありません。現時点では、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'