Знаешь ли что-нибудь про обработку в конкурентном режиме
Python
Junior
Без компании
Знаешь ли что-нибудь про обработку в конкурентном режиме
Ответы
В Python конкурентная обработка достигается через многопоточность (`threading`), многопроцессорность (`multiprocessing`) или асинхронность (`asyncio`).
**Threading** подходит для I/O-bound задач (например, сетевые запросы), но из-за GIL не ускоряет CPU-bound задачи.
**Multiprocessing** обходит GIL, создавая отдельные процессы, идеален для CPU-bound задач.
**Asyncio** использует корутины и event loop для неблокирующего I/O, эффективен при множестве соединений.
Пример с `threading`:
```
import threading
def task():
print("Выполняется в потоке")
threads = [threading.Thread(target=task) for _ in range(5)]
for t in threads:
t.start()
for t in threads:
t.join()
```
Пример с `asyncio`:
```
import asyncio
async def task():
print("Асинхронная задача")
async def main():
await asyncio.gather(*[task() for _ in range(5)])
asyncio.run(main())
```
Выбор инструмента зависит от типа задачи (I/O vs CPU) и масштаба.