Назад к вопросам
Middle
7
Расскажи про race condition.
Компании, где спрашивали
Лоция
Ответ от нейросети
sobes.tech AI
Race condition (состояние гонки) возникает, когда несколько потоков или процессов одновременно обращаются к общему ресурсу без правильной синхронизации, и итоговый результат зависит от порядка выполнения этих операций.
В Java это часто проявляется при работе с общими переменными без использования механизмов синхронизации (synchronized, volatile, атомарные классы). Например, если два потока одновременно увеличивают счетчик без блокировок, итоговое значение может быть меньше ожидаемого.
Пример race condition:
public class Counter {
private int count = 0;
public void increment() {
count = count + 1; // неатомарная операция
}
public int getCount() {
return count;
}
}
// Если несколько потоков вызовут increment() одновременно, итоговый count может быть меньше ожидаемого.
Чтобы избежать race condition, используют синхронизацию, атомарные операции или другие механизмы управления доступом.