每日打卡--day11

每日打卡--day11,第1张

每日打卡--day11

violatile 关键字的作用?

一个非常重要的问题,是每个学习、应用多线程的 Java 程序员都必须掌握的。理 解 volatile关键字的作用的前提是要理解 Java 内存模型,这里就不讲 Java 内存模型 了,可以参见第31 点,volatile 关键字的作用主要有两个:

1)多线程主要围绕可见性和原子性两个特性而展开,使用 volatile 关键字修饰的变 量,保证了其在多线程之间的可见性,即每次读取到 volatile 变量,一定是最新的数据。

2)代码底层执行不像我们看到的高级语言----Java 程序这么简单,它的执行是 Java 代码–>字节码–>根据字节码执行对应的 C/C++代码–>C/C++代码被编译成汇编语 言–>和硬件电路交互,现实中,为了获取更好的性能 JVM 可能会对指令进行重排序,多线程下可能会出现一些意想不到的问题。

使用 volatile 则会对禁止语义重排 序,当然这也一定程度上降低了代码执行效率从实践角度而言,volatile 的一个重 要 作 用 就 是 和 CAS 结 合。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5434931.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存