Python предлагает три модели конкурентности, и правильный выбор зависит в основном от того, является ли ваша работа ограниченной операциями ввода-вывода или ограниченной ЦП — решение, во многом определяемое GIL (который предотвращает параллельное выполнение потоков кода Python).
Три модели
threading → multiple threads, ONE process. GIL-limited for CPU.
multiprocessing → multiple PROCESSES, each its own interpreter/GIL → true parallelism.
asyncio → single thread, cooperative coroutines yielding at await points.
