gpt4 book ai didi

c++ - 对于 C++ 并发,是否需要使用互斥?

转载 作者:行者123 更新时间:2023-11-30 02:03:30 24 4
gpt4 key购买 nike

我必须设计一个应用程序,从本地网络读取 UDP 数据并将数据存储在当前值表 (CVT) 中。

然后,一个单独的线程将出现并从 CVT 中读取值,处理它们,然后通过 UDP 将它们发送出去。 CVT 条目将由单独的标量组成,例如 float 和整数。

我的问题是,我需要多少互斥来保护 CVT 的更新/读取?

换句话说,如果我有一个写入 32 位 int 的线程和另一个从该 int 读取的线程,我是否需要为其使用互斥锁?

我不关心读取器线程是否没有存储最新的绝对值,我只关心在更改时尝试读取该位置。我知道关键字“volatile”在 Java 中用于此场景,但它在 C++ 中的作用不同。

最佳答案

这在很大程度上取决于您使用何种平台来支持线程。如果你有可用的原子类型,你可以只使用它们。否则,是的,您几乎只能使用互斥锁(某种类型——许多平台有不止一种类型)。

关于c++ - 对于 C++ 并发,是否需要使用互斥?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802094/

24 4 0