(免费领取名企Java面试题)volatile作用,指令重排相关

147 阅读1分钟

(免费领取名企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。

扫下方免费领取Java大厂面试题

在这里插入图片描述