单核、多核原子操作怎么理解

原子操作就是: 不可中断的一个或者一系列操作, 也就是不会被线程调度机制打断的操作, 运行期间不会有任何的上下文切换(context switch).

单核下这样理解没有问题,

但是多核下,原子操作应该怎么理解呢? (如果还是按照不可中断或者不会被线程调度机制打断理解的话,那么多核下的原子操作,并不能保证操作数据的一致性啊!)
求大神帮忙解答一下呗。。。

cpu锁定总线技术
spin lock必须基于CPU的数据总线锁定, 它通过读取一个内存单元(spinlock_t)来判断这个spinlock是否已经被别的CPU锁住. 如果否, 它写进一个特定值, 表示锁定了总线, 然后返回. 如果是, 它会重复以上操作直到成功, 或者spin次数超过一个设定值. 记住上面提及到的: 锁定数据总线的指令只能保证一个指令操作期间CPU独占数据总线. (spinlock在锁定的时侯, 不会睡眠而是会持续的尝试).