Знаешь ли что-нибудь про конкурентность
Python
Junior
Без компании
Знаешь ли что-нибудь про конкурентность
Ответы
В Python конкурентность достигается через многопоточность (`threading`), многопроцессность (`multiprocessing`) и асинхронность (`asyncio`).
- **Потоки** (`threading`) подходят для I/O-bound задач (сетевые запросы, чтение файлов), но из-за GIL (Global Interpreter Lock) не дают выигрыша в CPU-bound задачах.
- **Процессы** (`multiprocessing`) обходят GIL, используя отдельные процессы, идеально для CPU-bound задач.
- **Асинхронность** (`asyncio`) эффективна для I/O-bound задач с большим количеством соединений, используя корутины и цикл событий.
Пример с `threading`:
```
import threading
def task():
print("Выполняется в потоке")
thread = threading.Thread(target=task)
thread.start()
thread.join()
```
Пример с `asyncio`:
```
import asyncio
async def task():
print("Асинхронная задача")
asyncio.run(task())
```
Выбор инструмента зависит от типа задачи (I/O vs CPU) и требований к производительности.