gpt4 book ai didi

C++ 原子对象无锁保证

转载 作者:行者123 更新时间:2023-11-30 05:40:48 26 4
gpt4 key购买 nike

我有跟进这个问题 Why is is_lock_free a member function?

总结一下这个问题中的观点:无锁的属性只能为类型的实例所知,而不是类型的任何实例。

我想知道一个实例是否在运行时的某个时间点是无锁的,在其余的执行过程中是否保证该属性(通过 c++11 标准或更高版本)为真?

谢谢

最佳答案

标准并没有用那么多的话来保证它,但我会说它是明确暗示的:

  • 如果实例不会保持无锁状态,那么从 is_lock_free 获取结果和使用结果之间就会出现竞争条件:这就是我想要的如果这是一个有效的问题,希望在标准中明确提及

  • 29.4/2 “函数atomic_is_lock_free(29.6)表示对象是否是无锁的。在任何给定的程序执行中,结果无锁查询的查询对于所有相同类型的指针应该是一致的。”建议实例是否是无锁的在程序执行期间不太可能改变。 p>

如果您决心(偏执狂?)保证实例的无锁状态在程序运行期间不会发生变化,您可以简单地在指向实例的指针上调用 atomic_is_lock_free。 .(或者如果你只是轻度偏执狂的话)。

关于C++ 原子对象无锁保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31419975/

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