我必须设计一个从本地网络读取 UDP 数据并将数据存储在当前值表 (CVT) 中的应用程序。
然后,将出现一个单独的线程并从 CVT 中读取值,对它们进行处理,然后通过 UDP 将它们发送出去。CVT 条目将由单独的标量组成,例如浮点数和整数。
我的问题是,我需要多少互斥来保护 CVT 的更新/读取?
换句话说,如果我有一个线程写入 32 位 int 并且另一个线程从该 int 读取,我是否需要为此使用互斥锁?
我不在乎阅读器线程是否没有获得存储的绝对最新值,我只是担心在更改该位置时尝试读取该位置。我知道关键字“volatile”在 Java 中用于这种情况,但它在 C++ 中并没有做同样的事情。