чистий Python-код
Что такое «чистый» Python код? Вот это можно назвать чистым?
Хоча GIL значно спрощує розробку інтерпретатора та гарантує потокобезпечність багатьох базових операцій, він стає серйозним обмеженням для багатоядерних процесорів, оскільки лише один потік може виконувати Python-код у певний момент часу.
Точнее будет сказать не Python-кода, а Python/C API.
Тож потоки — поганий інструмент для паралелізму у випадку CPU-навантажених задач, але рішення є — процеси, про які поговоримо у третій частині статті
см. hashlib, PIL, numpy, там отпускается GIL и прекрасно CPU-bound задача выполняется «параллельно», те же треды покажут себя лучше нежели процессы, но тут нужно профилировать зачастую.
Вот это больше похоже на правду :)
Ну и процессы тоже не панацея, это стоит понимать, особенно на задачи с общим стейтом, все это синхронизировать как-то через пайп.. может даже последовательно запустив окажется быстрее.
Раз уж на то пошло, то можно еще осветить такую тему как sub-interpreters, в сравнении с тредами/процессами. Я бы почитал за это с удовольствием.