Почему вы можете запускать Jython и IronPython без необходимости в GIL, но Python (CPython) требует GIL?
Части Интерпретатора не являются поточно-ориентированными, хотя в основном потому, что превращение их всех в многопотоковое из-за массового использования блокировки приведет к крайне медленному однопоточному (исходному) . Похоже, это связано с сборщиком мусора CPython, использующим подсчет ссылок (JVM и CLR этого не делают, и поэтому не нужно каждый раз блокировать / освобождать счетчик ссылок). Но даже если бы кто-то придумал приемлемое решение и внедрил его, сторонние библиотеки все равно имели бы те же проблемы.
Обратите внимание, что расширения, написанные на C, могут фактически избавиться от GIL: http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock
Полагаю, потому что библиотеки C, на которых построен CPython, не являются поточно-ориентированными.Принимая во внимание, что Jython и IronPython созданы на основе Java и .Net соответственно.