Встречается на собеседованиях • сегодня
Что произойдет при непотокобезопасной инкрементации переменной
При непотокобезопасной инкрементации (count++) в многопоточной среде может возникнуть состояние гонки (race condition). Операция инкремента не атомарна — она включает чтение, увеличение и запись значения. Если несколько потоков пытаются инкрементировать переменную одновременно, часть изменений может потеряться.
Пример:
java
int count = 0;
void unsafeIncrement() {
count++; // Непотокобезопасно!
}Проблема возникает из-за того, что два потока могут прочитать одно и то же значение count, увеличить его и записать обратно, перезаписав изменения друг друга.
Решение — использовать AtomicInteger, synchronized или volatile + атомарные операции:
java
AtomicInteger safeCount = new AtomicInteger(0);
void safeIncrement() {
safeCount.incrementAndGet(); // Потокобезопасно
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы