Что такое корпоративная многозадачность
Python
Middle
Без компании
Что такое корпоративная многозадачность
Ответы
Корпоративная многозадачность (или конкурентность) в Python — это подход к выполнению нескольких задач одновременно в рамках одного процесса, часто используемый в корпоративных приложениях. В отличие от параллелизма (true parallelism), в Python из-за GIL (Global Interpreter Lock) потоки выполняются поочередно, но переключаются быстро, создавая иллюзию параллельности.
Для IO-задач (сетевые запросы, работа с БД) эффективны асинхронные подходы (`asyncio`) или пулы потоков (`ThreadPoolExecutor`). Для CPU-задач — процессы (`multiprocessing`).
Пример с `ThreadPoolExecutor`:
```
from concurrent.futures import ThreadPoolExecutor
import requests
def fetch(url):
return requests.get(url).status_code
urls = ["https://python.org", "https://google.com"]
with ThreadPoolExecutor(max_workers=2) as executor:
results = list(executor.map(fetch, urls))
print(results) # [200, 200]
```
Ключевые инструменты:
- `threading` — для IO-bound задач с GIL.
- `multiprocessing` — для CPU-bound задач (обходит GIL).
- `asyncio` — для асинхронного IO с корутинами.
Важно: избегать race conditions (использовать `Lock`, `Queue`).