(免费领取名企Java面试题)volatile作用 , 指令重排相关
【指令|(免费领取名企Java面试题)volatile作用,指令重排相关】Java是当下最热门的编程语言 , 越来越多的年轻人开始从事Java方面的工作 , 高就业率 , 高薪水的岗位 , 是吸引他们的原因 。 每个行业都有三六九等的区别 , 那如何在这个行业脱颖而出呢 , 那就需要扎实的基础 , 拥有一份好的基础就是拥有高薪的最好办法 , 那么今天就为大家带来Java面试题:volatile作用 , 指令重排相关 。
答:
理解volatile关键字的作用的前提是要理解Java内存模型 , volatile关键字的作用主要有两点:
多线程主要围绕可见性和原子性两个特性而展开 , 使用volatile关键字修饰的变量 , 保证了其在多线程之间的可见性 , 即每次读取到volatile变量 , 一定是最新的数据
代码底层执行不像我们看到的高级语言—-Java程序这么简单 , 它的执行是Java代码–>字节码–>根据字节码执行对应的C/C++代码–>C/C++代码被编译成汇编语言–>和硬件电路交互 , 现实中 , 为了获取更好的性能JVM可能会对指令进行重排序 , 多线程下可能会出现一些意想不到的问题 。 使用volatile则会对禁止语义重排序 , 当然这也一定程度上降低了代码执行效率
从实践角度而言 , volatile的一个重要作用就是和CAS结合 , 保证了原子性 , 详细的可以参见java.util.concurrent.atomic包下的类 , 比如AtomicInteger 。
推荐阅读
- Tesla|特斯拉因两处安全缺陷召回近50万辆电动汽车 承诺免费修复
- 雷军|和雷军一起开箱,领取小米12「专属指南」
- 最新消息|快手调整员工福利:减少房补、取消免费三餐 新增生育奖金
- 网络应用|免费、不限速 8大网盘今年都已提供无差别速率服务
- 运营|Yiwealth面向百家金融机构免费提供百万元智能内容产品及服务,打造财富管理行业智慧运营新基建
- 青春|百度网盘青春版正式上线:免费空间 10GB,支持无差别速率下载
- Figma|小米推出全新 MiSans 字体:MIUI13 系统内置,全社会可免费商用
- Xiaomi|小米发布全新字体MiSans 供全社会免费商用
- 香橙|首批投放!免费打车!
- 机甲|2D像素风格射击游戏《暴走机甲》在App Store限时免费领