zoukankan      html  css  js  c++  java
  • volatile

     volatile写的内存语义:
    当写一个volatile变量时,JMM会把该线程对应的本地内存中的共享变量值刷新到主内存。
    volatile读的内存语义:
    当读一个volatile变量时,JMM会把该线程对应的本地内存置为无效,线程接下来将从主内存中读取共享变量。
     
    重排序:
    能否重排序 第二个操作
    第一个操作 普通读/写 volatile读 volatile写
    普通读/写     NO
    volatile读 NO NO NO
    volatile写   NO NO
    当第二个操作是volatile写时,不管第一个操作是什么,都不能重排序。这个规则确保volatile写之前的操作不会被编译器重排序到volatile写之后
     当第一个操作是volatile读时,不管第二个操作是什么,都不能重排序。这个规则确保volatile读之后的操作不会被编译器重排序到volatile读之前
    当第一个操作是volatile写,第二个操作是volatile读时,不能重排序。
     

  • 相关阅读:
    Java精选笔记_JSP技术
    Java精选笔记_JavaBean
    Java精选笔记_JSP开发模型
    Java精选笔记_XML基础
    Git_多人协作
    Git_Feature分支
    Git_Bug分支
    Git_分支管理策略
    Git_解决冲突
    Git_创建与合并分支
  • 原文地址:https://www.cnblogs.com/jerrice/p/7276942.html
Copyright © 2011-2022 走看看