Чем deadlock отличается от race condition и когда что выбрать?
Что хотят услышать интервьюеры:
Сравнение: deadlock стоит сравнивать с race condition по критериям читаемости, безопасности, производительности, тестируемости и поддержки командой.
Ответ:
Когда выбирать deadlock: когда его свойства прямо соответствуют задаче: deadlock возникает, когда потоки ждут ресурсы друг друга.
Слабый ответ: “так принято в Spring/Java”. На собеседовании лучше объяснить ограничения и цену выбора.
// lock A then B vs lock B then A