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

В чем разница между Race Condition и Data Race

Race Condition возникает, когда поведение программы зависит от порядка выполнения потоков, что может приводить к недетерминированным результатам. Data Race — частный случай Race Condition, когда несколько потоков одновременно обращаются к одной переменной, и хотя бы один из них изменяет её без синхронизации.

Пример Data Race:

java
class Counter {
    private int count = 0;
    public void increment() { count++; } // Не потокобезопасно
}

Пример Race Condition (без Data Race):

java
if (list.size() > 0) {
    // Другой поток может удалить элемент здесь
    System.out.println(list.get(0)); 
}

Data Race всегда является ошибкой, тогда как Race Condition может быть корректным в некоторых сценариях. Для предотвращения используют synchronized, volatile или атомарные классы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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