TGViewer
YeaHub Tech YeaHub Tech @yeahub_tech · 412 subscribers
Post #422 55
🧑‍💻 Сложные вопросы с собесов на Java разработчика

1. Является ли операция ++ атомарной для volatile переменной?
Нет, операция ++ не является атомарной, даже если переменная объявлена как volatile. volatile гарантирует видимость изменений между потоками, но не защищает составные операции. Инкремент состоит из нескольких шагов: чтение, увеличение и запись. Между этими шагами другой поток может вмешаться. Поэтому volatile не решает проблему гонок данных.

2. Как можно избежать deadlock?
Deadlock возникает, когда потоки навсегда ждут освобождения ресурсов друг от друга. Чтобы его избежать, нужно соблюдать единый порядок захвата блокировок, минимизировать синхронизацию и избегать вложенных lock. Также помогают таймауты, неблокирующие структуры данных и высокоуровневые concurrency-абстракции. Проектирование играет ключевую роль. Deadlock проще предотвратить, чем обнаружить.

3. Как обеспечить атомарность операций в многопоточном коде?
Атомарность обеспечивается с помощью синхронизации, блокировок или атомарных классов. Самый простой способ — synchronized. Более гибкий вариант — Lock. Для счётчиков и простых операций лучше использовать классы из java.util.concurrent.atomic. Выбор подхода зависит от задачи и требований к производительности.

4. Что такое virtual threads и в чём их идея?
Virtual threads — это лёгкие потоки, управляемые JVM, а не операционной системой. Они позволяют создавать миллионы потоков без серьёзных накладных расходов. Идея заключается в том, чтобы упростить конкурентный код, сохранив привычную модель потоков. Virtual threads особенно эффективны для задач с большим количеством блокирующих операций. Они появились в рамках Project Loom.

5. Что значит синхронизация на мониторе объекта?
Синхронизация на мониторе объекта означает, что потоки конкурируют за внутренний монитор конкретного объекта. Только один поток может владеть монитором в каждый момент времени. Пока монитор захвачен, другие потоки вынуждены ждать. Это обеспечивает взаимное исключение и корректную видимость изменений.

#volatile #atomicity #deadlock #concurrency #synchronization #virtual #thread #monitor
  • 👍 1
More from @yeahub_tech
  1. Oct 7, 2026#course #начинающие 📚 Твой Golang Твой Golang — это идеальный старт для освоения языка. П…
  2. Oct 5, 2026🧑‍💻 Вопросы с собесов для Node.js Разработчика 1. Как использовать Service Workers для р…
  3. Oct 2, 2026#Собес #transaction #propagation #required 🤔 Что такое propagation у транзакций и какие т…
  4. Oct 1, 2026#book #book 📚 Библия C#. 6-е изд. Автор: Михаил Фленов Это настольная книга программиста,…
  5. Sep 30, 2026#repository #books 📚 Коллекция официальных электронных книг от Unity Сайт представляет со…
  6. Sep 28, 2026🧑‍💻 5 сложных вопросов для Python разработчиков 1. Что такое абстрактный метод? Абстракт…
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 →