我正在研究 Java 并发性并找到了以下资源以供引用,
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 关系的声明有点困惑,
A write to a volatile field happens-before every subsequent read of that same field. Writes and reads of volatile fields have similar memory consistency effects as entering and exiting monitors, but do not entail mutual exclusion locking.
我对上面声明中加粗的部分表示不清楚。
谁能告诉我它与该声明相关的确切含义是什么?
最佳答案
进入/退出监视器会触发一个happens-before 屏障,就像访问一个volatile 变量一样,但它们也会触发互斥锁。 互斥(或互斥)确保如果有多个线程试图跨越屏障,一个线程可能会被锁定,直到另一个线程释放互斥锁。
volatile 变量具有happens-before 特性但没有任何锁定。
关于java - "Happens-before"Java相关volatile字段说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19118052/