
volatile关键字在多线程场景中使用,其底层实现原理是:
- 当对volatile变量执行写 *** 作后,JMM会把工作内存中的最新变量值强制刷新到主内存
- 写 *** 作会导致其他线程中的缓存无效
*** 作系统的缓存行(cacheline)默认是64bytes,声明一个变量volatile int x = 0,当两个线程同时对x进行 x++ *** 作时,会先将x加载到自己的缓存中,修改之后强制刷新到公共的缓存中,以此来保证一致性。
欢迎分享,转载请注明来源:内存溢出

volatile关键字在多线程场景中使用,其底层实现原理是:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)