Встречается на собеседованиях • сегодня

Что произойдет при непотокобезопасной инкрементации переменной

При непотокобезопасной инкрементации (count++) в многопоточной среде может возникнуть состояние гонки (race condition). Операция инкремента не атомарна — она включает чтение, увеличение и запись значения. Если несколько потоков пытаются инкрементировать переменную одновременно, часть изменений может потеряться.

Пример:

java
int count = 0;

void unsafeIncrement() {
    count++;  // Непотокобезопасно!
}

Проблема возникает из-за того, что два потока могут прочитать одно и то же значение count, увеличить его и записать обратно, перезаписав изменения друг друга.

Решение — использовать AtomicInteger, synchronized или volatile + атомарные операции:

java
AtomicInteger safeCount = new AtomicInteger(0);

void safeIncrement() {
    safeCount.incrementAndGet();  // Потокобезопасно
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы