Локальный класс потока Java
Есть ли способ сообщить JVM, что класс используется исключительно из одного потока => JVM разрешено оптимизировать операции с полями (загружать / хранить) действий перекрестной синхронизации?
2 ответа
Решение
Нет. Это режим работы по умолчанию. Вот почему вам нужно предпринять дополнительные шаги (такие как volatile
или же synchronized
) когда не работает с одним потоком.
Есть ли способ сказать JVM, что класс используется исключительно из одного потока
Вы не можете явно сказать это, но при ограниченных обстоятельствах JVM горячей точки может сделать вывод, что объекты не могут быть видны другими потоками, и выполняет оптимизацию, такую как декомпозиция объекта / выделение стека и удаление блокировки.
Эта функция называется анализом побега.