假设您有以下课程:
public class Shared { public int a; public int b; public volatile int c;}现在假设线程A引用了此类的实例,并且
shared.a = 1;shared.b = 2;shared.c = 3;
假设线程B引用了同一个实例,并且
display(c);display(b);display(a);
然后,如果为c显示的值为3(即,如果在读取线程B之前发生了线程A的写操作),那么Java内存模型可以确保分别为b和a显示2和1,因为保证了在写易失性c之前执行的线程A的所有操作对于读取了c的新值的线程是可见的。



