🔹 Асинхронность 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. asyncio управляет корутинами, threadpool выполняет блокирующие вызовы.
import asyncio from concurrent.futures import ThreadPoolExecutor
def cpu_bound(x): return x*x
async def main(): loop = asyncio.get_running_loop() with ThreadPoolExecutor() as tp: res = await loop.run_in_executor(tp, cpu_bound, 10) print(res)
asyncio.run(main())
📚 Коротко: concurrency ≠ parallelism — комбинируйте asyncio для I/O и threadpool/processes для тяжёлых задач.
➡️ Мы в Telegram - Сетке - ВК Буду рад вашей реакции здесь⬇️
В этом посте были ссылки, но мы их удалили по правилам Сетки