Встречается на собеседованиях • сегодня
Какие примитивы синхронизации использовал и как
В Java основные примитивы синхронизации:
- synchronized - ключевое слово для блоков/методов:
java
public synchronized void increment() {
count++;
}- wait()/notify()/notifyAll() - методы Object для координации потоков:
java
synchronized(lock) {
while(!condition) {
lock.wait();
}
// работа
lock.notifyAll();
}- ReentrantLock - более гибкая альтернатива synchronized:
java
Lock lock = new ReentrantLock();
lock.lock();
try {
// критическая секция
} finally {
lock.unlock();
}- Semaphore - ограничивает количество потоков:
java
Semaphore sem = new Semaphore(3);
sem.acquire();
try {
// доступ к ресурсу
} finally {
sem.release();
}-
CountDownLatch/CyclicBarrier - для ожидания завершения потоков
-
Atomic* классы (AtomicInteger и др.) - атомарные операции без блокировок
Выбор зависит от конкретной задачи - от простых synchronized до сложных комбинаций примитивов из java.util.concurrent.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы