volatile几乎是优秀团队必问的知识点,所以我这里给一个答题补充。
最常见的回答,是这样的:
求职者回答
volatile有三个作用:
读屏障,就是在读取volatile变量之前增加一条将变量内容从内存读入CPU缓存的指令;写屏障就是在volatile变量写入之后,将变量的值从CPU缓存写入内存。
指令重排是一种CPU策略,通过交换指令执行的顺序获得最佳性能。
← 4-8 面试官:LinkedBlockingDeque和SynchronousQueue工作原理一样吗? 4-10 给面试官讲讲无锁编程(Lock-Free Programming)→