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

Вернется ли 2000 при наличии двух потоков, увеличивающих volatile переменную равную 0

Нет, результат не гарантирован из-за race condition. volatile обеспечивает видимость изменений между потоками, но не атомарность операций.

Пример:

java
private volatile int counter = 0;

void increment() {
    counter++; // Не атомарная операция (read-increment-write)
}

При двух потоках возможен сценарий:

  1. Оба потока читают counter=0
  2. Оба инкрементируют до 1
  3. Оба записывают 1

Итог может быть меньше 2000. Для атомарности используйте AtomicInteger или synchronized.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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