Що насправді блокує GIL і коли потоки все ж допомагають?
Global Interpreter Lock дозволяє виконувати байткод Python лише одному потоку водночас, тож чистий Python-код ніколи не йде паралельно по ядрах. Потоки допомагають там, де робота — це очікування, а не обчислення: мережа, диск, база. Під час блокувального вводу-виводу блокування відпускається. Для обчислювального навантаження потрібні процеси, C-розширення, що відпускає GIL, або винесення гарячої частини з Python.