Происходит ли запуск отдельных процессов python во избежание GIL?

Мне интересно, как работает Global Interpreter Lock в python. Если у меня есть запуск приложения С++, четыре отдельных экземпляра python script будут выполняться параллельно на отдельных ядрах, или же GIL будет идти еще глубже, а затем только один процесс, который был запущен и управляет всем процессом python, независимо от процесса, который породил его?

Ответ 1

GIL влияет только на потоки в рамках одного процесса. Модуль multiprocessing фактически является альтернативой threading, который позволяет программам Python использовать несколько ядер и c. Ваш сценарий легко позволит использовать несколько ядер.

Ответ 2

Как указывает Алекс Мартелли, вы действительно можете избежать GIL, выполнив несколько процессов, я просто хочу добавить и указать, что GIL является ограничением реализации (CPython), а не Python в целом, его можно реализовать Python без этого ограничения. Stackless Python приходит на ум.