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

Были ли проблемы с синхронизацией

Да, в Java есть несколько типичных проблем с синхронизацией:

  1. Race Condition - когда несколько потоков одновременно изменяют общие данные, результат зависит от порядка выполнения.
java
int counter = 0;
// Без synchronized возможны потери инкрементов
public synchronized void increment() { counter++; }
  1. Deadlock - взаимная блокировка потоков, когда каждый ждет освобождения ресурса, занятого другим.
java
// Поток 1: synchronized(A) -> ждет B
// Поток 2: synchronized(B) -> ждет A
  1. Livelock - потоки постоянно меняют состояние, но не продвигаются в работе.

  2. Starvation - некоторые потоки долго не получают доступа к ресурсу.

Для решения используют:

  • synchronized методы/блоки
  • java.util.concurrent (Lock, Semaphore и др.)
  • Атомарные классы (AtomicInteger и т.д.)
  • Неизменяемые объекты (immutable)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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