.NET2.0是否有一个超薄的读写器锁?
我看过.NET2.0中的ReaderWriterLock和.NET3.5中的ReaderWriterLockSlim,slim版本不使用内核对象进行锁定。对于我的上下文,它可能会生成大量(但不是很大)的对象,这听起来更好 但我编写的代码需要在过渡期内同时在.NET2.0和3.5中使用,因此3.5版本虽然看起来很好,但无法使用.NET2.0是否有一个超薄的读写器锁?,.net,multithreading,locking,.net,Multithreading,Locking,我看过.NET2.0中的ReaderWriterLock和.NET3.5中的ReaderWriterLockSlim,slim版本不使用内核对象进行锁定。对于我的上下文,它可能会生成大量(但不是很大)的对象,这听起来更好 但我编写的代码需要在过渡期内同时在.NET2.0和3.5中使用,因此3.5版本虽然看起来很好,但无法使用 是否有人拥有或知道类似的类,我可以将其插入.NET 2.0并从中获得一些相同的好处?据我所知,Microsoft没有类似的类(否则,ReaderWriterLockSlim
是否有人拥有或知道类似的类,我可以将其插入.NET 2.0并从中获得一些相同的好处?据我所知,Microsoft没有类似的类(否则,
ReaderWriterLockSlim
会有些无意义)如果你从第三方而不是你信任的第三方找到一个有着优秀头脑的人,他们花了很长时间思考、实施和测试它,我不会相信它。例如,我当然不会信任随机代码项目实现
您是否有任何具体措施建议使用ReaderWriterLockSlim
会更好,值得为.NET 2.0寻找替代方案?这当然是一个“很好的拥有”,但我怀疑它的巨大意义的情况是相对罕见的。除非您已经知道锁定对您来说是一个瓶颈,否则我将坚持使用您现有的功能,并在您可以升级时做好准备
不过,您可能想尝试只使用普通监视器,而不是ReaderWriterLock
——在许多情况下,RWL的开销超过了它的好处
当然,这一切都是根据具体情况而定的-你的应用程序可能真的会被
ReaderWriterLockSlim
…库中的ReaderWriterGate
设计得更快,速度更快?-这个类是根据ReaderWriterLock替代方案设计的,比ReaderWriterLock快20%-30%
我所做的区别是:
我在这方面花了很多功夫,我希望它会有用。到目前为止,它是非常新的,需要对其他锁定机制进行测试。当然,一切都是.NET 2.0的抱怨。我问了一个关于使用
ReaderWriterLock
的缺点的问题,有一些有趣的链接包含了ReaderWriterLock
的替代品。看一看。我的数据结构是针对服务容器IoC类型的,它们的数据结构中包含实例,这些实例在开始时主要在单个线程上写入,但之后主要在多个线程上读取,所以我希望避免内核对象,只锁定()…我将把锁定代码分离到我自己的类中并使用它,现在只使用排他锁,然后我可以在以后插入更好的锁(如果必要的话)。不幸的是,该类仅适用于请求/响应类型的场景,因为它会立即返回并在获得锁时调用您的代码,而在我的代码中,我需要锁,因为我需要返回访问数据结构的结果。我肯定会看这个,谢谢发布它并让我知道它。