拥有对象的副本而不是锁定对象

本文关键字:对象 锁定 副本 拥有 | 更新日期: 2023-09-27 18:01:48

是否有一种方法,而不是锁定对象,显示它的临时副本,给访问它的人?

拥有对象的副本而不是锁定对象

将使用该对象(在您的情况下是关键资源)的代码包装为TransactionScope,并将IsolationLevel设置为Snapshot。

这样,任何试图访问同一对象的人都应该在编辑对象之前看到该值,直到事务完成。

使用volatile修饰符可以避免临时复制。

系统总是在volatile对象被请求时读取它的当前值,即使前面的指令请求来自同一个对象的值。同样,对象的值在赋值时立即写入。volatile修饰符通常用于由多个线程访问而不使用lock语句来序列化访问的字段。使用volatile修饰符可确保一个线程获取另一个线程写入的最新值。