在c ++中的多个线程中写入c数组的不同项是否线程安全?

时间:2019-01-31 19:50:35

标签: c++

假设我们有一个数组

int a[2];

线程1仅写入/读取一个[0]

线程2仅写入/读取一个[1]

此线程安全吗?

2 个答案:

答案 0 :(得分:3)

从标准的[intro.memory#3]

  

一个存储位置是标量类型的对象,或者是最大宽度都为非零的相邻位域的最大序列。   [...]   两个或多个执行线程可以访问单独的内存位置,而不会互相干扰。

int是这样的标量类型,因此数组的每个元素都是其自己的内存位置,这意味着多个执行线程可以分别访问每个线程而不会受到干扰。

答案 1 :(得分:1)

是,它是安全的,以相同的方式访问两个不同INT变量将是安全的。