Основы многопоточности в Python
TIP! Right-click and select "Save link as..." to download.
Продолжая тему конкурентности и параллелизма посмотрим на старые добрые потоки.
multithreading - многопоточность, подходит для IO-bound задач, использует ОС, страдает от GIL (важно помнить)
Полезно для ускорения выполнения задач или для того, чтобы текущий поток занялся другой задачей
Любая программа это минимум один процесс и один поток
Полезно использовать daemon=True, очереди, pool exeсutor, НО в любом случае все зависит от программиста!
Плюсы:
+ просто(сравнительно)
+ быстро
+ не умирает из-за одного(!)
Минусы:
- потребление ресурсов (ОС)
- неуправляемость (старт, приостановка, переключение)
- проблемы потоков (гонка, блокировки)
Читать:
Фаулер М. "Asyncio и конкурентное программирование на Python"