那是以前的C++没有提供足够的原子操作,不得不使用汇编而已,完全不值得提倡推广,更不用沾沾自喜。
我早都把这种无锁原子操作换成用std::atomic,使用新的C++标准来实现了,能不用汇编尽量不用汇编。
随便贴一个我写的无锁环形字符串队列的std::atomic实现。功能是对于多线程竞争更新的字符串内容,无锁让所有更新得到满足,但仅仅最后一个更新有效可读,读的过程中无锁接受新的线程更新请求。类似于一堆线程读写一个全局变量,但不用对这个全局变量上锁,限制是最近一次成功更新有效。

【 在 smartbear 的大作中提到: 】
: 这个答案就是C++ 嵌入汇编,对特定寄存器(dirty)进行读写保证数据不被修改
: 最难的问题是靠最基本的技巧实现的,只要实现功能,越简单越好
※ 修改:·poocp 于 Oct 7 22:49:11 2025 修改本文·[FROM: 171.221.52.*]
※ 来源:·水木社区
http://www.mysmth.net·[FROM: 171.221.52.*]
修改:poocp FROM 171.221.52.*
FROM 171.221.52.*