6 дней назад
🔹 Асинхронность vs конкурентность: python-практика
🔹 Чем отличаются concurrency и parallelism — и как asyncio + threadpool играют вместе? 🔸 concurrency решает проблему простаивания: позволяет управлять множеством задач одновременно, чтобы не блокировать поток при ожидании I/O (input/output). 🔸 parallelism — реальное параллельное выполнение на разных ядрах CPU (central processing unit); нужен для ускорения CPU-bound операций, иначе многозадачность не даст прироста. 🔸 Практика: для I/O-bound используйте asyncio; для блокирующих или CPU-bound функций — отправляйте их в threadpool (ThreadPoolExecutor) или в process pool...
2 месяца назад
🔹 Параллелизм в Python: threading vs asyncio
🔹 Когда лучше threading, а когда asyncio? 🔸 Без конкурентности (concurrency) приложение простаивает при I/O: клиенты ждут, throughput падает. threading и asyncio дают параллельность (parallelism) разными способами, чтобы не блокировать процесс. 🔸 threading — это OS‑потоки. Простая модель: запустил функцию в Thread. Хорошо для блокирующего I/O и когда есть C‑расширения, которые освобождают GIL (Global Interpreter Lock). 🔸 GIL (Global Interpreter Lock) мешает реальной параллельности Python‑байткода:...