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版本都有哪些

Windows10的版本1703这是啥版

不止 Windows 10!Windows 7/8 也能免费升级到 Windows 11

忙着Windows 10迁移?不要忘记Windows 7的安全!

如何让Mac,Windows可以互相远程

mac可以安装windows吗