Встречается на собеседованиях • сегодня
Чем запускать параллельно I/O bound задачи в Python
Для параллельного выполнения I/O-bound задач в Python лучше всего использовать asyncio или многопоточность (threading), так как GIL не блокирует потоки во время операций ввода-вывода.
1. asyncio (предпочтительно для современных приложений):
python
import asyncio
async def fetch_data(url):
# имитация I/O операции
await asyncio.sleep(1)
return f"Данные с {url}"
async def main():
tasks = [fetch_data(f"url_{i}") for i in range(3)]
results = await asyncio.gather(*tasks)
print(results)
asyncio.run(main())
text
**2. `threading`** (проще, но менее эффективно при большом числе задач):
```python
from threading import Thread
import time
def fetch_data(url):
time.sleep(1)
print(f"Данные с {url}")
threads = [Thread(target=fetch_data, args=(f"url_{i}",)) for i in range(3)]
for t in threads: t.start()
for t in threads: t.join()Выбор:
asyncio— для асинхронного кода (HTTP-запросы, базы данных с async поддержкой).threading— если используются синхронные библиотеки (например,requests).
Для CPU-bound задач вместо этого используй multiprocessing.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы