java内存模型与多线程技术.pptVIP

  • 8
  • 0
  • 约8.3千字
  • 约 48页
  • 2019-08-10 发布于广东
  • 举报
Volatile变量的内存模型分析 “不要相信volatile ”,这种说法已经过时 旧的内存模型:保证读写volatile都直接发生在main memory中,线程的working memory不进行缓存 —— 仅仅保证这些volatile使用的价值和意义不大 在新的内存模型下对volatile的语义进行了修补和增强 如果当线程 A 写入 volatile 变量 V 而线程 B 读取 V 时,那么在写入 V 时,A 可见的所有变量值现在都可以保证对 B 是可见的。结果就是作用更大的 volatile 语义,代价是访问 volatile 字段时会对性能产生了一点点的影响。(A volatile var write happens-before read of the var) Volatile变量的内存模型分析 volatile 的旧语义只承诺正在读和写的变量的可见性,仍然参与排序。这样导致排序问题。新的内存模型修补了这一点 实际上,对 volatile 字段的每一次读或者写都像是“半个”同步。 对 volatile 的读有与monitor enter的内存语义, 对 volatile 的写有与monitor exit的同样的语义。 Volatile Guarantees Visibility Stop 用volatile修饰来保证变量的写可见性 class Ta

文档评论(0)

1亿VIP精品文档

相关文档