gpt4 book ai didi

c# - ReaderWriterLockSlim.EnterUpgradeableReadLock() 本质上与 Monitor.Enter() 相同吗?

转载 作者:行者123 更新时间:2023-11-30 15:48:18 24 4
gpt4 key购买 nike

所以我遇到这样一种情况,我可能有很多很多读取,只是偶尔写入多个线程共享的资源。

很久以前,我阅读了关于 ReaderWriterLock 的内容,并且阅读了关于 ReaderWriterGate 的内容它试图缓解许多写入 trump 读取并损害性能的问题。但是,现在我已经意识到 ReaderWriterLockSlim ...

从文档中,我相信任何时候只能有一个线程处于“可升级模式”。在我使用的唯一访问权限是 EnterUpgradeableReadLock() 的情况下(这适合我的场景)那么与坚持使用 lock(){} 有很大区别吗?

摘录如下:

A thread that tries to enter upgradeable mode blocks if there is already a thread in upgradeable mode, if there are threads waiting to enter write mode, or if there is a single thread in write mode.

或者,递归策略对此有什么影响吗?

最佳答案

同意。如果您的所有线程都需要获取一个可升级的读锁并且您不能释放一个读锁并获取一个写锁,那么 ReaderWriterLockSlim 与简单的独占锁相比没有任何改进.递归不会改变这一点。 RWLS 和避免永远存在的死锁危险的需要非常有利于单个线程进行写入的模式。

关于c# - ReaderWriterLockSlim.EnterUpgradeableReadLock() 本质上与 Monitor.Enter() 相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2745352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com