Встречается на собеседованиях • сегодня
Что такое 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();
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы