@beduin01

Что происходит внутри потоков Python?

Я не совсем понял про потоки в Python. С одной стороны они системные. С другой говорится, что Python до 3.2 отсчитывал по 100 тиков, а потом делал что-то. Python после 3.2 выполняет что-то по истечении 5мс.

И я вот сколько не смотрю видео не могу понять что именно происходит в этот момент. Или по истечении этого промежутка времени Python форсирует переключение системных потоков?

Если так, то как работает механизм гарантирующий, что поток в Python не зависнет на середине? Типа часть операций сделал, а часть не успел и его перещелкнули.

Можно вот более развернуто написать, а не просто что это GIL так работает.
  • Вопрос задан
  • 227 просмотров
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
чтобы успел - защелкнут назад

GIL
Ответ написан
Комментировать
@lega
В версии 3+ если поток один, то ничего не перещелкивается (в отличие от 2.х).
На работу потока выделяется определенное время после чего управление передается другому потоку. Поток может прерваться только отрабтав байткод (не в середние), но это может быть середина питон кода, т.е. прерывается в любом месте. Если код - расширение на C, то оно часто не учасвтует в захвате GIL и может работать параллельно без блокировок, т.е. блокируется только питон код, а расширения работают в потоках без блокировок.
Ответ написан
Ваш ответ на вопрос

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

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