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

Чем будешь пользоваться при реализации потокобезопасного счетчика

Для потокобезопасного счетчика в Java можно использовать:

  1. AtomicInteger – наиболее простой и эффективный вариант для атомарных операций:
java
AtomicInteger counter = new AtomicInteger(0);
counter.incrementAndGet(); // потокобезопасное увеличение
  1. synchronized блок или метод, если нужна более сложная логика:
java
private int count = 0;
public synchronized void increment() {
    count++;
}
  1. ReentrantLock для гибкого управления блокировками:
java
private final Lock lock = new ReentrantLock();
private int count = 0;

public void increment() {
    lock.lock();
    try {
        count++;
    } finally {
        lock.unlock();
    }
}

Выбор зависит от сценария:

  • AtomicInteger – для простых атомарных операций (максимальная производительность).
  • synchronized – если логика сложнее (например, проверка условия перед инкрементом).
  • ReentrantLock – когда нужны tryLock(), fairness или другие продвинутые фичи.

Для большинства случаев счетчика хватит AtomicInteger.

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

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

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

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