Er det rigtigt, at java-flygtige adgange ikke kan omarrangeres?
Hvad JLS siger (fra JLS-8.3.1.4. volatile Fields) er til dels, at
Java-programmeringssproget giver en anden mekanisme, volatile
felter, det er mere praktisk end at låse til nogle formål.
Et felt kan erklæres volatile
, i hvilket tilfælde Java-hukommelsesmodellen sikrer, at alle tråde ser en ensartet værdi for variablen (§17.4).
Hvilket betyder, at adgangen kan omarrangeres, men resultaterne af enhver genbestilling skal til sidst være konsistent (når den åbnes af en anden tråd) med den oprindelige rækkefølge. Et felt i en enkelt trådet applikation ville ikke behøve låsning (fra volatile
eller synchronization
).