我总是被告知要对多个线程将访问的变量进行锁定,我一直认为这是因为你要确保在你写回来之前你正在使用的值没有改变,即
mutex.lock()
int a = sharedVar
a = someComplexOperation(a)
sharedVar = a
mutex.unlock()
Run Code Online (Sandbox Code Playgroud)
你有理由把它锁定.但在其他情况下,我不明白为什么我不能不使用互斥锁.
线程A:
sharedVar = someFunction()
Run Code Online (Sandbox Code Playgroud)
线程B:
localVar = sharedVar
Run Code Online (Sandbox Code Playgroud)
在这种情况下可能出现什么问题?特别是如果我不关心线程B读取线程A分配的任何特定值.
| 归档时间: |
|
| 查看次数: |
1530 次 |
| 最近记录: |