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

Как решить проблему потокобезопасности

Потокобезопасность в Java достигается несколькими способами:

  1. Использование synchronized - самый простой способ:
java
public synchronized void increment() {
    counter++;
}
  1. Использование атомарных классов (из пакета java.util.concurrent.atomic):
java
private AtomicInteger counter = new AtomicInteger(0);

public void increment() {
counter.incrementAndGet();
}

text

3. **Иммутабельные объекты** - создание объектов, состояние которых нельзя изменить после создания.

4. **ThreadLocal** - когда нужно хранить состояние для каждого потока отдельно.

5. **Использование concurrent коллекций** (ConcurrentHashMap, CopyOnWriteArrayList и др.)

Выбор подхода зависит от конкретного сценария. Для счетчиков лучше Atomic-классы, для сложных операций - synchronized или Lock, для коллекций - concurrent-реализации.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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