Я часто вижу, как люди говорят, что GIL на Python Interpreter (даже здесь, в stackoverflow).Действительно ли Python GIL на переводчика?
Но то, что я вижу в исходном коде, похоже, что GIL является глобальной переменной, и поэтому в каждом процессе python имеется один GIL для всех интерпретаторов. Я знаю, что они сделали это, потому что объект интерпретатора не прошел, как lua или TCL, он просто не был хорошо разработан в начале. И локальное хранилище потоков, по-видимому, не переносимо для парней python.
Это правильно? Я кратко рассмотрел версию 2.4, которую я использую в проекте здесь.
Если бы это было изменено в более поздних версиях, особенно в версии 3.0?
Многие проекты удалили GIL из CPython раньше. Недостаток ласточки не первый. Однако они не работали так же хорошо, как версия GIL, поэтому никто их не использовал. – nosklo
Кроме того, stackless не удаляет GIL. Фактически, любая операция блокировки в любом бесконтактном микропотоке блокирует все приложение. – nosklo
И Jython настолько медленный, что он непригодный для использования - если вы просто не используете его для скриптового плагина для java-программы, где большая часть работы выполняется на Python. – Lothar