Встречается на собеседованиях • сегодня

Что лучше асинхронность или многопоточность

Выбор зависит от задачи:

Асинхронность (asyncio) лучше для I/O-bound задач (сетевые запросы, работа с БД), где много времени тратится на ожидание. Потребляет меньше ресурсов, но требует переписывания кода под async/await.

python
import asyncio

async def fetch_data():
    await asyncio.sleep(1)  # Имитация I/O операции
    return "data"

async def main():
result = await fetch_data()
print(result)

asyncio.run(main())

text

**Многопоточность** (threading) проще для CPU-bound задач, но сложнее в отладке из-за race conditions. GIL в Python ограничивает параллелизм для CPU-операций.

```python
from threading import Thread

def calculate():
    # CPU-intensive операция
    result = sum(i*i for i in range(10**6))
    print(result)

thread = Thread(target=calculate)
thread.start()

Для CPU-bound задач лучше использовать multiprocessing, который обходит GIL. Асинхронность — для I/O, потоки — для простых параллельных задач, процессы — для тяжёлых вычислений.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы