CAS的发展史
提示:初学者容易把CAS当做是高大上的知识点,这是因为存在思维定势,觉得凡是钻研底层就是技术大牛。其实,不然。现在很多人觉得搞芯片是高大上的行业,而实际情况却是:芯片是夕阳产业。因为国内芯片被卡脖子才引发关注,但实际上芯片行业早就经过了残酷的竞争和淘汰阶段,技术突破很难,已经没有什么想象力了。
我们都知道,原子由原子核和绕核运动的电子组成。这是从物理状态而言的,原子可以分割的,但是在化学反应中原子是不可分割的。
原子是化学反应不可再分的最小微粒,原子是构成一般物质的最小单位,也称之为元素。
物质是由原子构成,这是客观存在的现象,在计算机领域,人的思想变得更抽象,更升华了一步:一个字节就是一个“原子”。因为当一个处理器读取一个字节时,其他处理器不能访问这个字节的内存地址,所以每次访问总是能获得一个完整的字节,不会出现半字节。
字节即是原子,操作字节的读写操作则为原子操作。后来,人们把不可被中断的一个操作或多个操作称之为原子操作。
除了读字节和写字节是原子操作之外,还有一个更复杂的读写操作也是原子操作。这就是大名鼎鼎的CAS。CAS是英文单词CompareAndSwap的缩写,中文意思是“比较并替换”。CAS需要有3个操作数:内存地址V,旧的预期值A,即将要更新的目标值B。
CAS指令执行时,当且仅当内存地址V的值与预期值A相等时,将内存地址V的值修改为B,否则就什么都不做。整个比较并替换的操作是一个原子操作。
很多人看到CAS就感觉这个是高深的玩意,其实不然。可以看做是读字节和写字节的进阶而已。