Какие методы синхронизации JVM можно игнорировать, если я знаю, что буду работать на процессоре x64?

Я знаю, что модель памяти JVM предназначена для наименьшего общего знаменателя процессоров, поэтому она должна предполагать самую слабую модель процессора, на которой может работать JVM (например, ARM).

Теперь, учитывая, что у x64 достаточно сильная модель памяти, какие приемы синхронизации можно игнорировать, если я знаю, что моя программа будет работать только на 64-битных процессорах x86? Также это применимо, когда моя программа запускается через виртуализацию?

Пример:
Известно, что модель памяти JVM требует синхронизации доступа на чтение / запись к long и double, но можно предположить, что чтение / запись других 32-битных примитивов, таких как int, float и т. Д., Являются атомарными.

Однако, если я знаю, что я работаю на 64-битной машине с архитектурой x86, могу ли я игнорировать использование блокировок на long / double, зная, что процессор будет атомарно считывать / записывать 64-битные значения и просто сохранять их изменчивыми (как я делал бы с int / float) )?

Ответы на вопрос(5)

Ваш ответ на вопрос