1、volatile是无法保证原子性的
2、java分为主内存,线程内存,线程是把主内存的值复制到线程中;
3、修改volatile变量时会强制将修改后的值刷新的主内存中;
4、修改volatile变量后会导致其他线程工作内存中对应的变量值失效。因此,再读取该变量值的时候就需要重新从读取主内存中的值;
1、volatile是无法保证原子性的
2、java分为主内存,线程内存,线程是把主内存的值复制到线程中;
3、修改volatile变量时会强制将修改后的值刷新的主内存中;
4、修改volatile变量后会导致其他线程工作内存中对应的变量值失效。因此,再读取该变量值的时候就需要重新从读取主内存中的值;