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

Как сделать синхронизацию потоков

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

  1. synchronized блок/метод - самый простой способ:
java
public synchronized void increment() {
    counter++;
}
  1. Использование объектов синхронизации из пакета java.util.concurrent:
  • ReentrantLock
  • Semaphore
  • CountDownLatch
  • CyclicBarrier
  1. Использование volatile для переменных (обеспечивает видимость изменений между потоками):
java
private volatile boolean flag = true;
  1. Атомарные классы (AtomicInteger, AtomicBoolean и др.):
java
private AtomicInteger counter = new AtomicInteger(0);

Синхронизация нужна для:

  • предотвращения состояния гонки (race condition)
  • обеспечения видимости изменений между потоками
  • поддержания согласованности данных

Выбор способа зависит от конкретной задачи. Для простых случаев достаточно synchronized, для сложных - лучше использовать классы из java.util.concurrent.

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

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

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

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