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

Какие знаешь инструменты синхронизации параллельного кода

В Java основные инструменты синхронизации:

  1. synchronized - ключевое слово для блоков и методов:
java
public synchronized void increment() {
    count++;
}
  1. Lock интерфейсы (ReentrantLock, ReadWriteLock):
java
Lock lock = new ReentrantLock();
lock.lock();
try {
    // critical section
} finally {
    lock.unlock();
}
  1. Atomic классы (AtomicInteger, AtomicReference):
java
AtomicInteger counter = new AtomicInteger(0);
counter.incrementAndGet();
  1. Semaphore - ограничивает количество потоков:
java
Semaphore sem = new Semaphore(3);
sem.acquire();
// доступ к ресурсу
sem.release();
  1. CountDownLatch и CyclicBarrier - для координации потоков.

  2. Concurrent коллекции (ConcurrentHashMap, CopyOnWriteArrayList).

Выбор зависит от сценария: для простых случаев - synchronized/atomic, для сложных - Lock/Semaphore, для коллекций - Concurrent реализации.

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

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

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

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