gpt4 book ai didi

c++ - 线程安全和位域

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:12:47 27 4
gpt4 key购买 nike

我知道位域依赖于编译器,但我没有找到有关最新 g++ 和 Visual C++ 2010 位域线程安全的文档。

位域成员的操作是原子的吗?

最佳答案

不幸的是,“线程安全”在编程中是一个非常过载的术语。

如果您指的是对位域的原子 访问,答案是否定的(至少在我所知道的所有处理器上是这样)。您可以原子访问 32 位机器上的 32 位内存位置,但这仅意味着您将读取或写入整个 32 位值。这并不意味着另一个线程不会做同样的事情。如果您想要停止,您可能需要同步。

如果您指的是对位域的同步访问,那么答案也是否定的,除非您将访问包装在更高级别的同步原语(通常基于原子操作)中。

简而言之,编译器不提供对位字段的原子同步访问,而无需您进行额外的工作。

这有帮助吗?

编辑:Dr. Dan Grossman has two nice lectures on atomicity and synchronization I found on UOregon's CS department page .

关于c++ - 线程安全和位域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6192628/

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