compare_exchange_weak 是 C++ 标准库 <atomic> 中 std::atomic 类的一个成员函数,用于执行原子的比较和交换(Compare-And-Swap,CAS)操作。该操作是无锁编程中的核心操作之一,在多线程环境下保证数据的原子性更新,避免使用传统锁机制带来的性能开销。
功能概述
compare_exchange_weak 函数会将原子变量的当前值与一个期望值进行比较,如果两者相等,则将原子变量的值更新为指定的新值;如果不相等,则将期望值更新为原子变量的当前值。该函数可能会出现伪失败的情况,即即使原子变量的当前值与期望值相等,操作也可能返回 false,但这并不影响其在循环中重试以达到最终的更新目的。
函数原型
bool compare_exchange_weak( T& expected, T desired,
std::memory_order success,
std::memory_order failure );
参数解释
expected:一个引用,指向存储期望值的变量。如果比较操作成功,原子变量会被更新为desired;如果失败,expected会被更新为原子变量的当前值。desired

最低0.47元/天 解锁文章
538

被折叠的 条评论
为什么被折叠?



