赞
踩
1.可见性:一个线程修改了voliate修饰的值后,对于其他线程可见;
2.有序性:保证临界区代码执行有序性;
3.受限原子性:不保证原子性。
读:当一个线程读取被voliate修饰的值时,JVM将本地设置无效,从主内存读取共享变量
写:当一个线程修改voliate修饰的值时,JVM将本地内存刷新到主内存
借用了CPU的lock指令
1.写voliate时,处理器将缓存写回主内存
2.一个处理器缓存写回到主内存导致其他处理器缓存失败
基于CPU缓存一致性协议,JVM实现了voliate可见性,但由于总线嗅探机制,不断监听总线,大量使用voliate会引起总线风暴。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。