Коротко

GIL (Global Interpreter Lock) в CPython — замок, из‑за которого в один момент байткод Python выполняет только один поток внутри процесса.

На что влияет

  • CPU-bound задачи на threading почти не ускоряются на нескольких ядрах.
  • I/O-bound (сеть, диск) — потоки всё ещё полезны: пока один ждёт I/O, другой может работать.
  • Для параллелизма по CPU: multiprocessing, отдельные процессы, нативные расширения, иногда другие интерпретаторы.

Короткий ответ

«GIL в CPython не даёт двум потокам одновременно исполнять Python-байткод. Для CPU — процессы, для I/O — потоки/async нормальны.»