当前位置: 首页 > 后端技术 > Java

volatile关键字

时间:2023-04-01 23:58:16 Java

volatile关键字的作用1.修改可见2.防止指令重排修改可见读取volatile修饰对象时,每次修改volatile修饰对象时,从主存中读取值,立即修改后写入主存,但volatile不能保证原子性。多个线程可能同时读取最新的值,并根据这个值在工作内存中修改,修改后同步到主内存。Case防止重排的含义如下图所示。下图就是一个例子。当发生指令重排时,线程A获得锁并开始创建对象。线程B判断对象不为空,直接返回使用,但实际对象还没有初始化。导致错误;volatile字段的意思是禁止这里的指令重排参考:https://www.cnblogs.com/zhong...https://www.miaokee.com/57027...https://cloud.tencent.com/dev…