gpt4 book ai didi

c - 使用 C/Pthreads : do shared variables need to be volatile?

转载 作者:太空狗 更新时间:2023-10-29 16:23:04 25 4
gpt4 key购买 nike

以C编程语言和Pthreads作为线程库;线程之间共享的变量/结构是否需要声明为 volatile 的?假设它们可能受锁或不受锁保护(可能是障碍)。

pthread POSIX 标准对此有任何说法吗,它是依赖于编译器还是两者都不依赖?

编辑添加:感谢您的精彩回答。但是,如果您使用锁怎么办?如果你使用 barriers 怎么办?例如?或使用原语的代码,例如 compare-and-swap直接和原子地修改共享变量...

最佳答案

只要您使用锁来控制对变量的访问,就不需要对其使用 volatile。事实上,如果您将 volatile 放在任何变量上,您可能已经错了。

https://software.intel.com/en-us/blogs/2007/11/30/volatile-almost-useless-for-multi-threaded-programming/

关于c - 使用 C/Pthreads : do shared variables need to be volatile?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/78172/

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