Hen*_*nry 0 c++ multithreading
所以这个共享对象是这样的(仅用于演示,而不是工作对象):
class Shared{
int var1;
int var2;
public:
void setter1(int var){
var1=var;
}
void setter2(int var){
var2=var;
}
}
Run Code Online (Sandbox Code Playgroud)
并能thread1做到shared->setter1(3)同时thread2做shared->setter2(2)在同一时间,没有任何竞争条件或问题?
是的,您可以Shared在两个独立的线程中访问对象的各个子对象而无需同步,这不会成为竞争条件。外行的解释在cppreference上给出,这是部分引用:
始终允许不同的执行线程同时访问(读取和修改)不同的内存位置,而不会产生干扰,也无需同步。
但是,提防虚假共享!您的代码似乎易于使用。
| 归档时间: |
|
| 查看次数: |
60 次 |
| 最近记录: |