【发布时间】:2014-10-22 07:13:18
【问题描述】:
我的做法如下,我的程序只有2个线程。
// Thread 1
write a = 0
write a = 1
write volatile b = 1
// Thread 2
read volatile b // this I always do after write volatile b in the 1st thread
read a
我已经阅读了 Java 内存模型,根据我在线程 2 中的理解,read a 总是会给我 1。
我想知道我的理解是否正确。
特别是仍然会发生重新排序,所以我在第二个线程中看到 a = 0 吗?
【问题讨论】: