Я видел что-то вроде fld = fld
несколько раз раньше, но во всех этих случаях фиктивная запись может быть устранена с лучшей производительностью.
public class Tst{
public volatile int fld = 1;
public void m(){
//... Something
fld = fld;
//... Something else
}
}
Вопрос в том, имеет ли такая фиктивная запись варианты использования или это какой-то обходной путь? Мне кажется, это точно так же, как (поскольку никакие магазины и загрузки не могут быть переупорядочены по фиктивной записи в соответствии с JMM)
public class Tst{
public volatile int fld = 1;
private static final Unsafe U;
public void m(){
//... Something
U.fullFence();
//... Something else
}
}