gpt4 book ai didi

multithreading - 用 SRW 锁替换临界区

转载 作者:行者123 更新时间:2023-12-04 01:01:18 25 4
gpt4 key购买 nike

如果应用程序针对 Windows Vista 或更高版本,我们是否可以替换所有 critical sectionsSRW locks ?既然临界区是互斥的,那么使用上就相当于独占模式下的SRW锁吧?根据 MSDN,SRW 在速度和空间方面都进行了优化。这样做有什么缺点吗?我不确定微软是如何在内部实现 CS 和 SRW 的。

谢谢!

最佳答案

请参阅 Joe Duffy 的书“Windows 上的并发编程”,第 289 页。

对您问题的简短回答是“几乎”。递归获取 CRITICAL_SECTION 的语义与 SRWL 不同。如果您的程序利用了 Win32 临界区的这些特性,那么您就不能轻易地全面切换到 SRWL。但是,您可以将 SRWL 包装在包装器中以提供类似 CS 的语义,但这样做有很多微妙之处,因此如果您依赖于此类行为,最好坚持使用 CS。

Kenny Kerr's article稍微介绍一下两者是如何在内部实现的。

关于multithreading - 用 SRW 锁替换临界区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3498798/

25 4 0
文章推荐: genetic-programming - 基因表达编程与笛卡尔遗传编程的区别
文章推荐: ios - 如何正确地为垂直堆栈 View 中的项目高度设置动画?
文章推荐: javascript - 为什么在 单元格中使用 SVG 强制表格为 100% 宽度?