3

两条线。第一个疯狂地从数组中读取元素。第二个同样热衷于通过读取元素并将它们增加任意数量来更新元素。

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

4

2 回答 2

9

在所有可以执行托管代码的intcpu 架构上,更新都是原子的。换句话说,您不会读取仅由写入线程修改的单个字节的值。大于 32 位的值类型值,喜欢long并且double不保证是原子的。对象引用也总是原子的。

于 2013-09-23T16:55:08.663 回答
1

这不是线程安全的——你不能保证一个线程得到正确的数据。

于 2013-09-23T16:51:37.583 回答