Jor*_*oba 1 c# immutability thread-safety
可以安全地假设使用或传递不可变对象总是线程安全的吗?
Luk*_*keH 9
是.如果一个对象是真正不可变的,没有发生内部突变,那么对象本身将是线程安全的.
(无论是处理对象还是以线程安全方式传递它都是另一回事!)
"内部突变"是什么意思?
许多对象似乎是从外部不可变的 - 例如,没有属性设置器或明显会触发突变的其他成员- 但这并不意味着对象的私有内部不能改变.
这就是为什么记录对象和/或其成员的可变性和线程安全性的重要性.否则,您的对象的消费者无法在不仔细检查内部的情况下发现这一点(这是一个实现细节,可能随时更改).
归档时间:
16 年,2 月 前
查看次数:
1223 次
最近记录:
14 年,5 月 前