@Darsatan

Локален ли GIL для каждого Python процесса?

Допустим, имеется 2 программы, которые после запуска запускают новый поток для обработки каких-то данных в фоне. В итоге имеется 2 процесса Python с 2-мя запущенными потоками в каждом (main + data_processing).

Будет ли для каждого процесса свой локальный GIL, или он будет один для всех python'ов? Т.е. пытаться захватить gil будет 4 потока, или конкуренция будет "внутрипроцессной"?
  • Вопрос задан
  • 2342 просмотра
Решения вопроса 1
alexclear
@alexclear
A cat
Конечно, GIL локален для каждого процесса.
Как может быть иначе? Процессы по умолчанию ничем не связаны.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@radioxoma
Да, так что можете использовать модуль multiprocessing, чтобы задействовать все ядра CPU..
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы