一、原子性
对于涉及共享变量访问的操作,若该操作从其执行线程以外的的任何线程来看是不可分割的,则认为是原子操作,说明这个操作具有原子性。
(1)针对共享变量而言,局部变量没有原子性问题
(2)是另外的线程看当前执行的线程,外部线程认为这个操作是否是原子操作
volatile int value; // volatile关键字只能保证写操作的原子性,不保证其他操作的原子性
二、可见性
一个线程对某个共享变量进行更新后,后续访问该变量的线程可能无法立刻读取该变量的更新结果,甚至永远也无法读取最新结果。
三、有序性
一个处理器执行的顺序可能在另一个处理器上执行的顺序不一样,可能是编译器优化导致指令重排
未完待续...