java voliate,voliate 的实现原理是什么【面试题详解】「建议收藏」

java voliate,voliate 的实现原理是什么【面试题详解】「建议收藏」今天爱分享给大家带来voliate的实现原理是什么【面试题详解】,希望能够帮助到大家。volatile可以保证线程可见性且禁止指令重排序,但是无法保证原子性。在JVM底层volatile是采用“内存屏障”来实现的,加入volatile关键字时,汇编后会多出一个lock前缀指令。lock前缀指令其实就相当于一个内存屏障。happen-before原则保证了程序的“有序性,对volatile变量的…

大家好,又见面了,我是你们的朋友全栈君。

今天爱分享给大家带来voliate 的实现原理是什么【面试题详解】,希望能够帮助到大家。

volatile可以保证线程可见性且禁止指令重排序,但是无法保证原子性。在JVM底层volatile是采用“内存屏障”来实现的, 加入volatile关键字时,汇编后会多出一个lock前缀指令。lock前缀指令其实就相当于一个内存屏障。

happen-before原则保证了程序的“有序性,对volatile变量的写操作 happen-before 后续的读操作.

当读取一个被volatile修饰的变量时,会直接从共享内存中读,而非线程专属的存储空间中读。

当volatile变量写后,线程中本地内存中共享变量就会置为失效的状态,因此线程B再需要读取从主内存中去读取该变量的最新值。

对该变量的写操作之后,编译器会插入一个写屏障。对该变量的读操作之前,编译器会插入一个读屏障。

线程写入,写屏障会通过类似强迫刷出处理器缓存的方式,让其他线程能够拿到最新数值。

当一个共享变量被volatile修饰时,它会保证修改的值会立即被更新到主存,当有其他线程需要读取时,它会去内存中读取新值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133168.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月9日 下午5:16
下一篇 2022年6月9日 下午5:36


相关推荐

  • 我在Mac上部署了阿里开源Qwen3,这3个玩法让我上头

    我在Mac上部署了阿里开源Qwen3,这3个玩法让我上头

    2026年3月13日
    1
  • 2021年软件测试面试题大全[通俗易懂]

    简述测试流程:1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(主要参与人员:开发、测试、产品、测试leader)。 6、开发提交代码至SVN或者GIT,配管搭建测试环境。 7、执行测试用例,记录发现的问题。 8、验证bug与回归测试。 9、编写测试报告。 10、产品上线。补充测试用例设计过程:根据需求得出测试需求设计测试方

    2022年4月7日
    52
  • windows 上用xshell使用 ssh自动登录linux

    windows 上用xshell使用 ssh自动登录linux

    2022年3月4日
    53
  • AI Agent的工作原理和架构

    AI Agent的工作原理和架构

    2026年3月16日
    2
  • 什么是事务的一致性?一致性和原子性的区别是什么?

    什么是事务的一致性?一致性和原子性的区别是什么?关于事务的一致性 数据库系统概念 中是这样描述的第二段说的三个特性是指原子性 隔离性 持久性 就算这样 相信大家也是懵懵的 我也是 所以才会写下这篇博客 看到别的博客说 一致性是事务的最终目的 原子性 隔离性 持久性都是为了实现一致性 在这里 我打算验证一番 怎么验证呢 假设 这个事务系统如果是由我们来设计的话 首先 场景是这样的 小范转 100 块钱给小黄 那么这个

    2026年3月18日
    1
  • C++ 宏定义

    C++ 宏定义define 基本用法 define 命令是 C 语言中的一个宏定义命令 它用来将一个标识符 宏名 定义为一个字符串 该标识符被称为宏名 被定义的字符串称为替换文本 程序编译之前 编译的时候所有的宏名都会被定义的字符串替换 这便是宏替换 理解宏定义的关键在于 替换 该命令有两种格式 一种是简单的宏定义 另一种是带参数的宏定义 1 简单的宏定义 defi

    2026年3月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号