【发布时间】:2014-02-04 01:50:59
【问题描述】:
有人告诉我,无论何时使用 volatile 变量(读取或写入),使用 volatile 变量都比使用同步块更有效。
直到 Java 1.4 我才明白为什么(因为那时线程不必刷新和刷新所有可访问的内存)。
但是从 Java 1.5 开始,我看到使用 volatile 变量和同步块之间的唯一区别 - 是锁获取机制。
获取锁真的那么贵吗?如果是这样,为什么会这样?
【问题讨论】:
标签: java multithreading concurrency volatile java-memory-model