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

Какие знаешь способы блокировки потока

1. **Thread.sleep()** – приостанавливает поток на указанное время. ```java Thread.sleep(1000); // 1 секунда ``` 2. **Object.wait()** – поток освобождает монитор и ждёт, пока другой поток вызовет `notify()`/`notifyAll()`. ```java synchronized (lock) { lock.wait(); } ``` 3. **BlockingQueue.take()/put()** – поток блокируется, если очередь пуста/полна. ```java BlockingQueue queue = new LinkedBlockingQueue<>(); queue.take(); // блокировка, если очередь пуста ``` 4. **CountDownLatch.await()** – поток ждёт, пока счётчик не станет нулём. ```java CountDownLatch latch = new CountDownLatch(1); latch.await(); // блокировка ``` 5. **CyclicBarrier.await()** – поток ждёт, пока все потоки не достигнут барьера. 6. **Semaphore.acquire()** – блокировка, если нет доступных пермитов. 7. **Future.get()** – блокировка до завершения асинхронной задачи. 8. **Lock.lock()** – блокировка с использованием `ReentrantLock`. 9. **join()** – ожидание завершения другого потока. ```java thread.join(); ``` Каждый способ имеет свои особенности и применяется в разных сценариях.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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