开发者社区 问答 正文

java语言中,volatile的作用是什么?

java语言中,volatile的作用是什么?

展开
收起
开发者小助手_LS 2021-11-03 18:14:34 811 分享 版权
1 条回答
写回答
取消 提交回答
  • Java 内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存中保存了该线程中是用到的变量的主内存副本拷贝,线程对变量的所有操作都必须在工作内存中进行,而不能直接读写主内存。不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量的传递均需要自己的工作内存和主存之间进行数据同步进行。所以,就可能出现线程1 改了某个变量的值,但是线程2 不可见的情况。

    Java 中的volatile 关键字提供了一个功能,那就是被其修饰的变量在被修改后可以立即同步到主内存,被其修饰的变量在每次是用之前都从主内存刷新。因此,可以使用volatile 来保证多线程操作时变量的可见性。

    资料来源:《Java工程师成神之路(基础篇)》,链接:https://developer.aliyun.com/topic/download?id=923

    2021-11-03 18:15:59
    赞同 展开评论