Fuld flygtig synlighedsgaranti
Det hele handler om happens-before
forhold.
Dette forhold er ganske enkelt en garanti for, at hukommelsesskriver ved en specifik sætning er synlige for en anden specifik erklæring.
-
I samme tråd,
this.years = years; this.months = months;
happens-before
:this.days = days;
- I en anden tråd skrives flygtig variabel
happens-before
læsetråden, der læste den flygtige variabel.
Og happens-before
forholdet har transitivitet. Når læseren ser den nye værdi af den flygtige variabel days
, kan den også læse den friske værdi af years
og months
.