假设我们有一个数组
int a[2];
线程1仅写入/读取一个[0]
线程2仅写入/读取一个[1]
此线程安全吗?
答案 0 :(得分:3)
从标准的[intro.memory#3]
一个存储位置是标量类型的对象,或者是最大宽度都为非零的相邻位域的最大序列。 [...] 两个或多个执行线程可以访问单独的内存位置,而不会互相干扰。
int
是这样的标量类型,因此数组的每个元素都是其自己的内存位置,这意味着多个执行线程可以分别访问每个线程而不会受到干扰。
答案 1 :(得分:1)
是,它是安全的,以相同的方式访问两个不同INT变量将是安全的。