Sobes.tech
Назад к вопросам
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.