有人可以向我解释一下上述操作在多线程中的工作原理和区别吗?
最佳答案
test-and-set
修改内存位置的内容并将其旧值作为单个原子操作返回。
compare-and-swap
以原子方式将内存位置的内容与给定值进行比较,并且只有当它们相同时才会修改该内存位置的内容到给定的新值。
用粗体标出的区别。
关于c++ - 比较和交换与测试和设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3659336/