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

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

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

Многопоточность использует несколько потоков ОС, которые могут выполняться параллельно на разных ядрах CPU. Потоки разделяют память процесса, что требует синхронизации (lock, mutex). В Python из-за GIL настоящий параллелизм возможен только для I/O-bound задач или при использовании multiprocessing.

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

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

python
async def fetch_data():
    await asyncio.sleep(1)  # Неблокирующее ожидание
    return "data"

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

python
def worker():
    time.sleep(1)  # Блокирующее ожидание
    return "data"

thread = threading.Thread(target=worker)
thread.start()
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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