CAS属于读取-修改-写入(RMW)算法族,这是一组允许您原子性地执行复杂事务的算法。
具体来说,维基百科表示:
CAS用于实现同步原语,如信号量和互斥锁,以及更复杂的无锁和无等待算法。[...] CAS可以实现比原子读取、写入或获取-添加更多的这些算法,并且假设有相当大量的内存,[...]它可以实现所有这些算法。
具体来说,维基百科表示:
CAS用于实现同步原语,如信号量和互斥锁,以及更复杂的无锁和无等待算法。[...] CAS可以实现比原子读取、写入或获取-添加更多的这些算法,并且假设有相当大量的内存,[...]它可以实现所有这些算法。
https://en.wikipedia.org/wiki/Compare-and-swap#Overview
看起来CAS算法是其类别中的“一刀切”产品。为什么会这样?其他RMW算法缺少什么?如果CAS是最好的工具,那么其他算法是什么?