首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ReaderWriterLock.AcquireReaderLock?

使用ReaderWriterLock.AcquireReaderLock?
EN

Stack Overflow用户
提问于 2011-06-23 10:52:31
回答 2查看 848关注 0票数 1

所以我正在读.NET中关于同步的文章,我突然产生了好奇心。当您有多个对象在读取相同的数据时,您应该使用ReaderWriterLock.AcquireReaderLock来确保在数据中存在锁的情况下没有其他对象修改数据。

现在..。如果我确信没有对象会修改数据(至少在读取数据时),那么获取ReaderLock有意义吗?还是建议使用它?为什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-23 10:58:29

从理论上讲,如果你百分之百确定在你的读取器读取数据时没有任何东西会修改数据,那么不,没有必要获得读取器锁。读取器锁用于防止写入器在读取数据时修改数据,但仍允许多个读取器并发访问该数据。

根据the MSDN documentation的说法

ReaderWriterLock用于同步对资源的访问。在任何给定的时间,它都允许多个线程的并发读访问,或者单个线程的写访问。

票数 2
EN

Stack Overflow用户

发布于 2011-06-23 11:02:37

如果您确定没有人在更改数据,则不需要锁定。然而,关键是绝对没有共享数据被修改。例如,如果您正在从延迟初始化内部状态的实例中读取数据,则可能会遇到潜在的竞争条件。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6448836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档