我正在研究Java Concurrency并找到以下资源来引用,
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/package-summary.html
http://docs.oracle.com/javase/tutorial/essential/concurrency/memconsist.html
我对关于Happens-before relation的陈述感到有点困惑,
在每次后续读取之前发生对易失性字段的写入 那个领域。易失性字段的写入和读取具有相似之处 进入和退出监视器时的内存一致性效果但是确实如此 不需要互斥锁定。
我不清楚上述陈述中Bold的陈述。
有人可以告诉我它与该陈述的确切含义是什么?
答案 0 :(得分:4)
进入/退出监视器会触发发生在之前的障碍,例如访问易失性变量,但也会触发互斥锁定。 互斥(或互斥锁)可确保如果多个线程尝试越过屏障,则一个线程可能会被锁定,直到另一个线程释放该互斥锁。
易变变量具有发生之前功能但没有任何锁定。