【发布时间】:2014-10-09 13:28:17
【问题描述】:
来自Java并发实践
线程共享其所属进程的内存地址空间,所有 进程中的线程可以访问相同的变量 & 从同一个堆中分配对象。
还有
将变量声明为 volatile 意味着线程不应缓存 这样的变量,或者换句话说,不应该信任这些变量的值 变量,除非它们是直接从主存中读取的。
我的问题是
假设有一个由线程修改的非易失性实例变量“a”。 'a' 的修改值不会在堆上更新。如果它在堆上更新,另一个读取该实例变量的线程将自动读取更新的值,因为线程共享堆中的实例变量。那么 volatile 变量的功能有何不同?
【问题讨论】:
标签: java multithreading concurrency volatile