作用
只能保证共享变量的可见性,不能保证共享变量操作的原子性。
原理
线程: A B C ,共享变量:s
例:三个线程同时对共享变量
1、A update变量s的值。
2、B、C同时也要更改,都获取到最新值之后,各自修改s的值,先写入的将被覆盖。不能保证同步。
使用
volatie+cas可以实现同步,包装类,countdownlatch都用到。
cas:存在自旋和ABA问题。
只能保证共享变量的可见性,不能保证共享变量操作的原子性。
线程: A B C ,共享变量:s
例:三个线程同时对共享变量
1、A update变量s的值。
2、B、C同时也要更改,都获取到最新值之后,各自修改s的值,先写入的将被覆盖。不能保证同步。
volatie+cas可以实现同步,包装类,countdownlatch都用到。
cas:存在自旋和ABA问题。