Java面试题:volatile作用,指令重排相关

开课吧开课吧锤锤2021-02-24 17:24

点赞
有用
分享分享

Java是当下最热门的编程语言,越来越多的年轻人开始从事Java方面的工作,高就业率,高薪水的岗位,是吸引他们的原因。每个行业都有三六九等的区别,那如何在这个行业脱颖而出呢,那就需要扎实的基础,拥有一份好的基础就是拥有高薪的最好办法,那么今天就为大家带来Java面试题:volatile作用,指令重排相关。

答:

理解volatile关键字的作用的前提是要理解Java内存模型,volatile关键字的作用主要有两点:

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

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

从实践角度而言,volatile的一个重要作用就是和CAS结合,保证了原子性,详细的可以参见java.util.concurrent.atomic包下的类,比如AtomicInteger。

以上就是Java面试题:volatile作用,指令重排相关的详细解析,希望对您的技术提升有所帮助,如果想要了解更多的Java面试题,那么不妨点击下方图片,免费领取课程。

Java

机会永远不会等待人,只有牢牢抓住才会成功,拥有一份好的面试宝典,入职就会很轻松。

有用
分享