Sobes.tech
Senior
44

Что такое race condition (состояние гонки)?

Įmonės kur klausė
SSP Soft

Atsakymas iš AI

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.