Назад к вопросам
Senior
4
Что такое race condition (состояние гонки)?
Компании, где спрашивали
SSP Soft
Ответ от нейросети
sobes.tech AI
Race condition (состояние гонки) возникает, когда несколько потоков или процессов одновременно обращаются и изменяют общие данные без должной синхронизации, что приводит к непредсказуемому поведению программы.
Например, если два потока одновременно увеличивают общий счётчик без блокировок, итоговое значение может быть неверным.
Пример на Java:
class Counter {
private int count = 0;
public void increment() {
count = count + 1; // неатомарная операция
}
public int getCount() {
return count;
}
}
Если несколько потоков вызовут increment() одновременно, итоговое значение count может быть меньше ожидаемого из-за состояния гонки.
Для предотвращения используют синхронизацию, например, ключевое слово synchronized или атомарные классы из java.util.concurrent.atomic.