TGViewer
Java Developer Java Developer @java_tg · 14.8K subscribers
Post #2841 3.85K
👩‍💻 JEP 491 — synchronized и виртуальные потоки без пиннинга (Java 24)

Виртуальные потоки появились в Java 21 как лёгкая альтернатива потокам ОС.

До Java 23 им мешало одно ограничение: при входе в synchronized поток пинился — то есть блокировал поток-носитель до выхода из блока.

Это снижало масштабируемость и мешало использовать synchronized в коде с блокирующими операциями:
synchronized byte[] getData() {
return socket.getInputStream().read(...);
}

Даже в ожидании входа в блок поток оставался привязан к носителю, из-за чего приходилось переписывать код с использованием ReentrantLock.


В Java 24 это поведение изменено: пиннинг отключён — виртуальные потоки теперь могут входить в synchronized без блокировки поток-носителя.

Теперь synchronized снова можно безопасно использовать с виртуальными потоками — просто и без обходных решений.

❤ — если имбовая обнова
😎 — если даже не пользовался ими

📱 Java Developer | #обучение
  • ❤ 25
  • 😎 17
More from @java_tg
  1. Oct 4, 2026👩‍💻 Что нового появилось в Java 27 Релиз небольшой, но несколько изменений JVM действите…
  2. Oct 3, 2026Post #4385
  3. Oct 3, 2026Сегодня один за другим ИИ-каналы говорят о «цифровом геноциде» корпорации Антропик: без во…
  4. Oct 3, 2026👩‍💻 Почему разработчики не умеют вовремя остановиться? Автор рассуждает, где проходит гр…
  5. Oct 2, 2026Post #4382
  6. Oct 2, 2026👩‍💻 Spring Boot + PostgreSQL с динамической схемой Практический кейс Pivot/EAV-архитекту…
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 →