【发布时间】:2012-08-03 19:28:35
【问题描述】:
我必须设计一个从本地网络读取 UDP 数据并将数据存储在当前值表 (CVT) 中的应用程序。
然后,一个单独的线程将出现并从 CVT 中读取值,对它们进行处理,然后通过 UDP 将它们发送出去。 CVT 条目将由单独的标量组成,例如浮点数和整数。
我的问题是,我需要多少互斥来保护 CVT 的更新/读取?
换句话说,如果我有一个线程写入 32 位 int 并且另一个线程从该 int 读取,我是否需要为此使用互斥锁?
我不在乎阅读器线程是否没有获得存储的绝对最新值,我只关心在更改该位置时尝试读取该位置。我知道关键字“volatile”在 Java 中用于这种情况,但在 C++ 中却没有做同样的事情。
【问题讨论】:
-
“我知道关键字“volatile”在 Java 中用于此场景,但在 C++ 中却没有做同样的事情。”谢谢你。
_o/\_ -
@GManNickG 你会欢迎 Obvious 船长上台吗?
-
@DesmondHume 不要把我拖进去;)
标签: c++ multithreading thread-safety mutex