Реклама

Java 24 убрала пиннинг synchronized. Почему виртуальные потоки всё ещё тормозят?

#Java #Почему #Казалось #Разбираемся #Найти
Java 24 убрала пиннинг synchronized. Почему виртуальные потоки всё ещё тормозят?

После перехода на Java 24 виртуальные потоки перестали блокировать носители внутри synchronized . Казалось бы, одним тормозом меньше. Но производительность по‑прежнему упирается в ограничения ресурсов, а старые способы диагностики уже не помогают. Разбираемся, где теперь искать причины задержек и какие настройки стоит пересмотреть. Найти причину тормозов

Привет, Хабр!

Виртуальные потоки приехали в Java 21 с оговоркой, которая полтора года ходила за ними по пятам: внутри synchronized поток намертво прилипает к своему носителю. Отсюда и советы: меняйте synchronized на ReentrantLock, иначе никакого Loom вы не увидите!

Совет был верным до марта 2025 года. Потом вышла Java 24 с JEP 491, и оговорку сняли: монитор больше не держит носитель, виртуальный поток спокойно отцепляется внутри synchronized и так же спокойно возвращается.

Но устаревший совет — это ещё полбеды.