通过read 把变量读到一块临时区域(操作数栈)操作数栈的东西是没有存下来的,通过load载入到变量副本,实际上是到局部变量表存下来了,再通过use命令去使用它,通过assign赋值
因为数据在临时区,一个线程改变了这个值另一个线程并不会知道.
加了volatile后 会增加一条总线,当数据改变之后通过store、write写回主内存过程中,总线会监听到这个值发生改变,会通知其他线程把副本中的数据删掉,要使用这个数据时重新从主内存中拿。
写回主内存(堆)去了(锁住去写)有嗅探机制,发现改变了就会把其他线程中的副本给删掉
实现成员变量在线程间的可见性