volatile、static

谈到 volatile、static 就必须说多线程。

1、一个线程在开始执行的时候,会开启一片自己的工作内存(自己线程私有),同时将主内存中的数据复制到自己 的工作内存,从此读写数据都是自己的工作内存的数据,(个人见解:其中写数据时会同步到主内存,读是读自己的工作内存的数据)

2、成员变量被volatile 修饰后,发生改变:每次读取被修饰的变量都是读取主内存中的变量,而不再是读工作内存的变量,这样就实现了多线程下的可见性。

3、成员变量被static 修饰后,每个实例(不是每个线程,static不是面对线程而是面对实例 ,这里与volatile最大区别点)都共享 一个主内存的数据。当多线情况下时,对 该成员的操作依然参照第1、 2 点。 

posted @ 2018-08-29 14:02  李京霖  阅读(1253)  评论(0编辑  收藏  举报