一、指令的原子性
一台机器的诞生和我们人类的诞生一样,天生就拥有一些技能,以此来维持自己的生命。人类生而就会呼吸,而对于计算机而言的话,它们生来就拥有对语句指令的识别和执行。
对于这些基本的指令语句,他们就是原子的,因为计算机的执行基本单位就是这些指令,要通过它天生的技能来运转——即使是在并发的环境之下,不论进程的切换,对执行代码的中断也好,都不会影响到具有原子性的指令。
二、锁
对于程序而言,锁能在并发环境下保证数据访问唯一性,是怎么保持的呢,底层是如何实现的?无非就是原子性的操作。
锁本质上是使用了对一个数据读取的原子性判断,如果为真,则可以进入访问,为假则没有权力进一步访问被原子性保护的内容,在这样的基础上,被原子性保护的内容,自然也是原子的了。
三、总结
通过上面的理解,我们可以发现一个规律——不论是一条指令,还是一段指令,这些指令在执行完成之前,都不会受到其他操作的影响,此时我们就可以理解什么原子性的了:一个操作中的所有动作,要么成功完成,要么全不做。