【发布时间】:2010-11-23 23:21:17
【问题描述】:
假设我在一个类中有一个整型变量,这个变量可能会被其他线程同时修改。写入受互斥体保护。我也需要保护读取吗?我听说有一些硬件架构,如果一个线程修改一个变量,另一个线程读取它,那么读取的结果将是垃圾;在这种情况下,我确实需要保护读取。不过我从未见过这样的架构。
此问题假设单个事务仅包含更新单个整数变量,因此我不担心事务中可能涉及的任何其他变量的状态。
【问题讨论】:
-
我不认为那个特定的是这个的重复,但我认为之前已经问过了
-
哎呀,你是对的 - 有这么多可供选择,我想我很困惑。
-
还有内存屏障的问题:如果一个线程写入变量,另一个线程会看到变化吗? (如果两个线程通过不同的处理器缓存访问内存,这可能是一个问题。)
-
Neil,那是 Java,它有不同的内存模型。
标签: c++ multithreading concurrency