Встречается на собеседованиях • сегодня
Достаточно ли сделать счетчик volatile для инкрементации из разных потоков
Нет, volatile не гарантирует атомарность операций инкремента. volatile обеспечивает видимость изменений между потоками, но операция i++ — это read-modify-write, которая не атомарна.
Для потокобезопасного инкремента используй:
AtomicInteger(лучший вариант)synchronizedблокReentrantLock
Пример с AtomicInteger:
java
AtomicInteger counter = new AtomicInteger(0);
counter.incrementAndGet(); // атомарный инкрементПример с synchronized:
java
private int counter = 0;
public synchronized void increment() {
counter++;
}volatile подходит только для одиночных операций записи/чтения.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы