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

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

Асинхронность и параллельность — это разные подходы к выполнению задач.

Асинхронность — это однопоточный подход, где задачи выполняются неблокирующим образом. Пока одна задача ожидает (например, I/O), другая может выполняться. Пример в Python с asyncio:

python
import asyncio

async def task():
    print("Start")
    await asyncio.sleep(1)  # Неблокирующее ожидание
    print("End")

asyncio.run(asyncio.gather(task(), task())) # Запуск асинхронно

text

**Параллельность** — это многопоточный/многопроцессорный подход, где задачи выполняются одновременно. В Python это можно реализовать через `threading` или `multiprocessing`:  

```python
from threading import Thread

def task():
    print("Start")
    time.sleep(1)  # Блокирующее ожидание
    print("End")

threads = [Thread(target=task) for _ in range(2)]
for t in threads: t.start()
for t in threads: t.join()

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

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

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

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

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