Windows 的 AcquireSRWLockExclusive 是递归的吗?
Posted
技术标签:
【中文标题】Windows 的 AcquireSRWLockExclusive 是递归的吗?【英文标题】:Is Windows' AcquireSRWLockExclusive recursive? 【发布时间】:2019-08-23 09:35:07 【问题描述】:我需要使用读写锁,但我也想确保锁在读写模式下都是递归的,这样在同一个线程上使用它的调用函数就不会锁定。
我在 MSDN 文档上一无所获。也许它隐藏在某个地方而我没有找到它?
【问题讨论】:
这在 MSDN 文档的首页上有明确记录。 【参考方案1】:SRWLocks 不是递归的,来自the docs:
SRW 锁是指针的大小。优点是更新锁状态很快。缺点是可以存储的状态信息很少,所以无法递归获取SRW锁。此外,在共享模式下拥有 SRW 锁的线程无法将其对锁的所有权升级为独占模式。
【讨论】:
谢谢。第二部分真的很伤心,我希望能够升级锁。这相当于我在其他库中使用 RW 锁的 70%。以上是关于Windows 的 AcquireSRWLockExclusive 是递归的吗?的主要内容,如果未能解决你的问题,请参考以下文章
不止 Windows 10!Windows 7/8 也能免费升级到 Windows 11