是从int []数组读取而另一个线程更新int []数组安全吗?

时间:2013-09-23 16:50:17

标签: c#

两个主题。 数组中第一个疯狂读取元素。 第二个同样是通过读取元素并将它们递增任意数量而更新元素。

这样安全吗?在这种情况下会出现什么问题吗?我不介意读取线程在更新线程仍在更新过程中读取“旧”值。我只是想确保读者不会读取未写入的数字,也不会发生异常。

2 个答案:

答案 0 :(得分:9)

int更新在所有可以执行托管代码的cpu架构上都是原子的。换句话说,您将不会读取只有写入线程修改的单个字节的值。大于32位的值类型值,如longdouble不保证是原子的。对象引用也总是原子的。

答案 1 :(得分:1)

这不是线程安全的 - 您不能保证一个线程获得正确的数据。