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

В чем разница между асинхронностью и многозадачностью

Асинхронность и многозадачность - разные подходы к параллельному выполнению кода:

Многозадачность (threading/multiprocessing) - параллельное выполнение задач с использованием нескольких потоков/процессов. ОС управляет переключением между ними. Пример с потоками:

python
from threading import Thread

def task():
print("Выполняю задачу")

t1 = Thread(target=task)
t2 = Thread(target=task)
t1.start(); t2.start()

text

**Асинхронность** (asyncio) - выполнение одной задачи с переключением между подзадачами при ожидании I/O. Управляется самим кодом через event loop:
```python
import asyncio

async def task():
    print("Начало задачи")
    await asyncio.sleep(1)
    print("Конец задачи")

asyncio.run(asyncio.gather(task(), task()))

Ключевые различия:

  • Многозадачность использует несколько потоков/процессов, асинхронность - один
  • Асинхронность эффективнее для I/O-bound задач, многозадачность - для CPU-bound
  • Асинхронность требует специального синтаксиса (async/await), многозадачность - нет
  • Многозадачность может использовать несколько ядер CPU
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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