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

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

Многопроцессорность использует несколько процессов (GIL не мешает), параллельно выполняющих код. Подходит для CPU-bound задач (вычисления). Асинхронность — однопоточный подход, где задачи выполняются кооперативно, переключаясь при ожидании I/O (подходит для I/O-bound задач).

Пример многопроцессорности:

python
from multiprocessing import Pool

def square(x):
    return x * x

with Pool(4) as p:
    print(p.map(square, [1, 2, 3]))

Пример асинхронности:

python
import asyncio

async def fetch_data():
    await asyncio.sleep(1)
    return "data"

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

asyncio.run(main())

Ключевые отличия:

  • Процессы используют несколько ядер, async — одно
  • Процессы дорогие в создании, корутины — легковесные
  • Многопроцессорность для CPU, async — для I/O операций
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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