P.MTH.LKF.01 除非必要,否则建议使用同步锁

【描述】

无锁编程性能不一定比同步锁高。

使用无锁编程时需要注意的地方比使用同步锁多,比如指令重排、ABA 问题、内存顺序是否指定正确等。 正确实现无锁编程比使用同步锁要困难很多。所以,除非必要,否则直接使用同步锁就可以。

也有一些 性能测试 作为参考,原子类型的性能比互斥锁的性能大概要好四倍左右。所以,当在同一个临界区内要有超过四次原子操作,也许使用互斥锁更加简单一些。