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

Что такое Data Race

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

Пример:

java
class Counter {
    private int count = 0;
text
public void increment() {
    count++; // Неатомарная операция (read-modify-write)
}

}

text
Если два потока вызовут `increment()` одновременно, возможна потеря обновлений из-за перекрытия операций.  

**Решение:**  
- Использование `synchronized`  
- Атомарные классы (`AtomicInteger`)  
- `volatile` (если операция атомарна)  

```java
// С synchronized
public synchronized void increment() {
    count++;
}

// С AtomicInteger
private AtomicInteger count = new AtomicInteger(0);
public void increment() {
    count.incrementAndGet();
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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