按月存档: 2012/12

[翻译]JSR 133 (Java Memory Model) FAQ

分类:java, 并发, 翻译评论:9条作者:ticmy日期:2012-12-11

JSR 133 (Java Memory Model) FAQ Jeremy Manson and Brian Goetz, February 2004 内容列表 究竟什么是内存模型? 其它语言,像C++,有内存模型吗? JSR133是什么? 重排序意味着什么? 老的内存模型有什么问题? 未正确同步是什么意思? 同步做了什么? final字段的值是如何看起来会变的? 在新的JMM下final字段是怎么工作的? volatile做了什么? 新的内存模型修复了“双重锁定检查”问题吗? 如果我要写一个VM呢? 为什么我要关心Java内存模型? 究竟什么是内存模型? 在多处理器系统中,处理器通常都有一到多级存储缓存,通过加速数据访问(因为数据距处理器更近)以及减少存储总线的流量(因为本地缓存可以满足某些存储操作)以提升性能。存储缓存能极大地提升性能,但也面临着大量新的难题。例如,当两个处理器同时检查相同的内存地址时会怎么样?在什么条件下它们将看到相同的值? 在处理器层面,针对其它处理器写入内存的值何时对当前处理器可见,以及当前处理器写入的值何时对其它处理器可见,内存模型为它们定义了充要条件。有些处理器表现出了强内存模型,对于任一给定的内存地址所有处理器看到的总是相同的值。另一些处理器则表现出…