Что такое deadlock и race condition?

Deadlock (взаимная блокировка) — ситуация в многопоточной или распределённой системе, когда два или более процесса навсегда блокируют друг друга, ожидая освобождения ресурсов, занятых друг другом.

Короткий ответ

Что ответить на собеседовании

Deadlock (взаимная блокировка) — ситуация в многопоточной или распределённой системе, когда два или более процесса навсегда блокируют друг друга, ожидая освобождения ресурсов, занятых друг другом. В результате ни один из них не может продолжить работу.

Подробный разбор

Ответ с пояснениями

Deadlock (взаимная блокировка) — ситуация в многопоточной или распределённой системе, когда два или более процесса навсегда блокируют друг друга, ожидая освобождения ресурсов, занятых друг другом. В результате ни один из них не может продолжить работу.

Пример: поток A держит ресурс 1 и ждёт ресурс 2, который занят потоком B, а поток B ждёт ресурс 1.

Race condition (состояние гонки) — ситуация, когда результат работы программы зависит от непредсказуемого порядка выполнения операций в параллельных потоках или процессах. Это приводит к ошибкам, если доступ к общим данным не синхронизирован.

Пример: два потока одновременно читают и изменяют одну переменную без блокировок, итоговое значение может быть некорректным.

Оба явления связаны с параллелизмом и требуют правильной синхронизации и проектирования для предотвращения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее