Sobes.tech
Назад к вопросам
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, используют синхронизацию, атомарные операции или другие механизмы управления доступом.