所有线程的共享变量都存储在主内存中,每一个线程都有一个独有的工作内存,每个线程不直接操作在主内存中的变量,而是
将主内存上变量的副本放进自己的工作内存中,只操作工作内存中的数据。当修改完毕后,再把修改后的结果放回到主内存中。
每个线程都只操作自己工作内存中的变量,无法直接访问对方工作内存中的变量,线程间变量值的传递需要通过主内存来完成。
也就是每个线程都有自己的内存空间,当它们同时操作主线程中变量,保证数据的一致性。比如线程1,和线程2同时操作变量a
,线程1拿到的a修改的时候,线程2这时候也在修改这个变量。会导致脏数据。使用了这个关键字会当线程1改变a的值,会重新
刷新主内存的值。标记了线程2的变量无效,重新从主内存中刷新数据。