什么是原子操做

简单来讲,原子操做(atomic)就是不可分割的操做,在计算机中,就是指不会由于线程调度被打断的操做。
好比,简单的赋值是一个原子操做:多线程

m = 6; // 这是个原子操做并发

假如m原先的值为0,那么对于这个操做,要么执行成功m变成了6,要么是没执行m仍是0,而不会出现诸如m=3这种中间态——即便是在并发的线程中。atom

而,声明并赋值就不是一个原子操做:线程

int n = 6; // 这不是一个原子操做code

对于这个语句,至少有两个操做:
①声明一个变量n
②给n赋值为6
——这样就会有一个中间状态:变量n已经被声明了可是尚未被赋值的状态。
——这样,在多线程中,因为线程执行顺序的不肯定性,若是两个线程都使用m,就可能会致使不稳定的结果出现。变量

相关文章
相关标签/搜索