TGViewer
Java Developer Java Developer @java_tg · 14.8K subscribers
Post #3370 3.09K
❔ Вопрос с собеседования

Почему Thread.sleep() не освобождает монитор блокировки?

Ответ: Метод Thread.sleep() приостанавливает выполнение потока на заданное время, но при этом не освобождает монитор, если поток удерживает synchronized-блокировку.

Это происходит потому, что sleep() просто переводит поток в состояние ожидания (TIMED_WAITING), но не влияет на механизмы синхронизации. Пока поток “спит”, другие потоки не могут получить доступ к заблокированному ресурсу, так как монитор остается занятым.

Чтобы освободить монитор и дать другим потокам возможность выполнить код, необходимо использовать wait(), join(), Lock или Condition, которые позволяют явно управлять блокировкой и ожиданием.


tags: #собеседование

📱 Java Developer | Чат
  • ❤ 17
  • 🔥 8
  • 👍 4
More from @java_tg
  1. Oct 1, 2026👩‍💻 Что находится внутри OpenJDK Официальный репозиторий JDK — хорошее место, если хочет…
  2. Sep 30, 2026👩‍💻 Гексагональная архитектура в Spring Boot Автор статьи показывает альтернативу: вынес…
  3. Sep 29, 2026👩‍💻 Ищем баги в Java-коде до запуска приложения Нашли open-source инструмент для статиче…
  4. Sep 28, 2026Post #4376
  5. Sep 28, 2026Как спроектировать ИИ-агента, который работает с корпоративными данными, соблюдает права д…
  6. Sep 28, 2026💻 Как быстро визуализировать SQL-схему Нашли инструмент, который умеет: 🫡 Строить ER-диа…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →