struct S {
int a;
int b;
};L1缓存线的大小等于64B。
global S s;
Thread1:
s.a = 2;
Thread2:
s.b = 1;这是C++中的数据竞赛吗?
发布于 2016-08-31 18:28:52
不,这不是一个数据竞赛。s.a和s.b是不同的内存位置。它们是独立地访问和修改的。
intro.memory/3内存位置要么是标量类型的对象,要么是相邻位字段的最大序列,它们都具有非零宽度。注意:语言的各种特性,如引用和虚拟函数,可能涉及程序无法访问但由实现管理的额外内存位置。-尾注两个或多个执行线程(1.10)可以更新和访问不同的内存位置,而不相互干扰。
https://stackoverflow.com/questions/39256401
复制相似问题