开发者社区 问答 正文

Java 语言中为什么要使用 volatile?

Java 语言中为什么要使用 volatile?

展开
收起
vncamyi27xznk 2021-11-12 16:12:32 383 分享 版权
1 条回答
写回答
取消 提交回答
  • "为了提高处理器的执行速度,在处理器和内存之间增加了多级缓存来提升。但是由于引入了多级缓存,就存在缓存数据不一致问题。 但是,对于 volatile 变量,当对 volatile 变量进行写操作的时候,JVM 会向处理器发送一条 lock 前缀的指令,将这个缓存中的变量回写到系统主存中。 但是就算写回到内存,如果其他处理器缓存的值还是旧的,再执行计算操作就会有问题,所以在多处理器下,为了保证各个处理器的缓存是一致的,就会实现缓存一致性协议。

    这本电子书收录于开发者藏经阁,下载链接:https://developer.aliyun.com/topic/download?id=923"

    2021-11-12 21:00:11
    赞同 展开评论
问答分类:
问答地址: