Встречается на собеседованиях • сегодня
Как решить проблему потокобезопасности
Потокобезопасность в Java достигается несколькими способами:
- Использование synchronized - самый простой способ:
java
public synchronized void increment() {
counter++;
}- Использование атомарных классов (из пакета 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-реализации.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы