1.概念
原子性:指一个操作或者一系列操作,不可中断,即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。
可见性:指当多个线程访问同一个变量时,一个线程修改了这个变量的值,其他线程能够立即看得到修改的值。
有序性:我们正常new 一个对象时,实际上在内存区域中是一系列指令操作,有内存分配、内存初始化、内存赋值初始化,这些指令如果按照正常顺序执行,即为有序性,但是我们也知道Java虚拟机为了提高运行效率,是允许指令重排的。
2.不同的Java关键字到底满足了哪些特性?
synchronized:三个特性都满足
volatile:可见性和有序性
CAS和 Atomic:原子性
网友评论