该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点
面试官:volatile 关键字的作用
-
可见性:当一个线程修改了volatile变量的值,这个新值对于其他线程是立即可见的。这是因为在多线程环境下,线程在修改volatile变量的值时,会立即刷新回主内存,而其他线程在读取该变量时会直接从主内存中获取最新值,而不是从线程的本地缓存。
-
禁止重排序:volatile变量的读写操作不会被重排序,保证了对volatile变量操作的顺序性。这对于涉及到多线程并发的情况下的指令顺序非常重要,可以避免出现意外的顺序问题。
-
不保证原子性:尽管volatile保证了可见性和禁止重排序,但它并不能保证对变量操作的原子性。如果一个操作涉及到多个步骤,volatile不能确保这些步骤是原子执行的。针对原子性操作,需要使用Atomic类或者synchronized关键字来保证。
代码示例:
public class SharedObject {
private
标签:Java,变量,保证,原子,关键字,详解,volatile,线程
From: https://blog.csdn.net/qq_27471405/article/details/137353963