index_table.html
我知道在C#中定义了一些atmoic类型,我无法找到数组。
答案 0 :(得分:4)
操作1是原子的。操作2不是。来自the spec:
5.5变量引用的原子性
以下数据类型的读写是原子的:bool,char,byte,sbyte,short,ushort,uint,int,float和reference类型。此外,在先前列表中具有基础类型的枚举类型的读取和写入也是原子的。其他类型的读写,包括long,ulong,double和decimal,以及用户定义的类型,都不能保证是原子的。
数组是引用类型。变量a
和b
是引用,因此操作1是引用赋值:对引用变量的简单写入,因此包含在内。操作2 看起来像对bool
的简单写入,也包括在内,但不要忘记数组中的索引查找。数组写入本身是原子,但是当您包含查找(解除引用a[1]
)时,涉及两个单独的操作。
答案 1 :(得分:-1)
也许我不对,但是在我看来a[1]=true;
操作不是原子的,
=true
根据规格看起来像是原子的,但是在总体(a[1]=true;
)操作期间,我们需要从数组中获取1个元素,然后将其设置为true