gpt4 book ai didi

iOS 上的 C++ 原子

转载 作者:行者123 更新时间:2023-11-28 06:15:35 29 4
gpt4 key购买 nike

我在 iOS 项目中有下一个独立的测试片段:

/// ...
std::atomic_bool ab;
ab.store(true);
bool expected = false;
while (!ab.compare_exchange_weak(expected, true));
assert(0);
// ...

假设 ab 没有被其他线程修改,我预计,循环将是无限的,但执行后我发现 assert 失败了。为什么会这样?

最佳答案

compare_exchange_weak 将第一个参数更改为实际存在的参数。因此,在循环的第一次迭代之后,expected 已更改为 true。然后将其反馈到 compare_exchange_weak 所在的循环中成功并继续使断言失败。

关于iOS 上的 C++ 原子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30406594/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com