Array本质上是读/写原子吗?
int[] arr = new int[10];
int[8] = 4; // This is what I'm interested in
在上面的代码中,第二行应生成两个机器指令,如
reg1 = reg_containing_arr_address + 32
Memcopy reg1 4
堆栈溢出上的一些posts看到这些是原子的。谁能解释我们是怎么回事?
答案 0 :(得分:2)
The components (elements) of arrays are variables.
数组访问表达式的结果是类型
T
的变量,即由索引表达式的值选择的数组中的变量。
根据this answer,int
变量的写入和读取是原子的。由于您的数组类型为int
,因此对它的读取和写入都是原子的。