【发布时间】:2011-08-01 06:12:30
【问题描述】:
这是对this question 的补充,我可以得出结论,在c/c++ 中,这样的操作不是线程安全的。
我的问题是在线程安全方面我们需要在任何情况下获取锁吗?注意这里锁是一个逻辑概念,即使你使用 InterlockedIncrement() 或 c++0x 原子类型,锁在概念上是使用 cmpxchg 获取的。
例如,如果只有一个写线程和多个读线程,读线程会得到奇怪的值吗?我假设
- 类型 i 在 x86 平台上为 32 位,在 x64 平台上为 64 位。
- 旧值或新值都可以。
【问题讨论】:
-
注意:我可以定义为 int32,它会确保它是一个 32 位的值
-
请编辑链接以引用合法网址
标签: c++ c multithreading