1.保证原子性
通过lock和synchronized,锁和同步,保证同一时间只有一个线程在执行。
2.保证可见性
volatile关键字修饰变量,它的作用是该变量被修改以后会立即更新到内存中。
3.保证顺序性
通过1、2一定程度上保证了顺序性。
jvm不会对顺序性做任何保证,它只负责高效率的排序
还可以从设计方面避免线程不安全-避免共享变量
1.保证原子性
通过lock和synchronized,锁和同步,保证同一时间只有一个线程在执行。
2.保证可见性
volatile关键字修饰变量,它的作用是该变量被修改以后会立即更新到内存中。
3.保证顺序性
通过1、2一定程度上保证了顺序性。
jvm不会对顺序性做任何保证,它只负责高效率的排序
还可以从设计方面避免线程不安全-避免共享变量