C ++:递归锁-有什么缺点吗?

亚尼夫·G

背景:我有一些线程应该访问共享数据。其中一个线程可能会锁定互斥锁,并且在互斥块内,(同一线程的)某些函数可能会再次调用同一锁定。

-我不想创建多个互斥对象

-我不想放弃锁定(显然)

-我宁愿不更改设计,因为这是一个很大的变化

void funcB()
{
   lock(MA);
   ...
   unlock(MA);
}

void funcA()
{
   lock(MA);
   ...
   funcB();
   ...
   unlock(MA);
}

看来唯一的方法是-使用递归锁。使用此功能有什么缺点吗?

当然,如果您想通过其他方法解决此问题,请分享

托尼·德罗伊

有什么缺点吗?

轻微的性能损失-如果需要,请衡量。

任何其他方式来解决

您可以给出funcB一个bool should_lock = true参数,或在主题上进行多种选择,例如,有一个重载锁定了一个互斥锁,然后调用了另一个重载,该重载期望引用已锁定的互斥锁(也许使用一个断言来检查它是否已在调试版本中锁定):funcA可以叫后者。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为C ++拥有标准GUI库的缺点是什么?

来自分类Dev

我可以在Async-await体系结构中的c#中使静态变量为Volatile吗?优缺点都有什么?

来自分类Dev

什么是C#中的无锁会话?

来自分类Dev

为什么必须要有缺点才能防止无限递归

来自分类Dev

使用“ .on”时有什么缺点吗?

来自分类Dev

与xampp相比,laragon有什么缺点吗?

来自分类Dev

使用异步有什么缺点吗?

来自分类Dev

C ++-递归结构-有可能吗?

来自分类Dev

C ++模板:是否内联了模板实例?性能上有缺点吗?

来自分类Dev

递归和非递归锁(Mutex)

来自分类Dev

在 C++ 项目中保留未使用的类有什么缺点?

来自分类Dev

我的C ++递归函数有什么问题?

来自分类Dev

互斥锁与C ++ 11中的pthread兼容吗?

来自分类Dev

发布没有 <form> 标签的表单有什么缺点吗

来自分类Dev

为什么锁要求C#中的实例?

来自分类Dev

Web应用程序中C3P0的这种含义正确吗?这种实现的优缺点是什么?

来自分类Dev

锁为什么不锁?

来自分类Dev

在c#中,Interlocked类中是否有锁或队列?

来自分类Dev

使用有什么缺点吗?charset =“ UTF-8”

来自分类Dev

使用load-grunt-task有什么缺点吗?

来自分类Dev

在GCC中使用-O3有什么缺点吗?

来自分类Dev

重写ThreadPoolExecutor afterExecute方法-有什么缺点吗?

来自分类Dev

使用rEFInd代替GRUB有什么缺点吗?

来自分类Dev

在asp.net中,RequiredFieldValidator有什么缺点吗?

来自分类Dev

使用nohup执行shell脚本有什么缺点吗?

来自分类Dev

使用rm $ {ls)删除文件有什么缺点吗?

来自分类Dev

使用jpg而不是png截屏有什么缺点吗?

来自分类Dev

使用 openat() 进行路径解析有什么缺点吗?

来自分类Dev

近似内容长度标头有什么缺点吗?

Related 相关文章

  1. 1

    为C ++拥有标准GUI库的缺点是什么?

  2. 2

    我可以在Async-await体系结构中的c#中使静态变量为Volatile吗?优缺点都有什么?

  3. 3

    什么是C#中的无锁会话?

  4. 4

    为什么必须要有缺点才能防止无限递归

  5. 5

    使用“ .on”时有什么缺点吗?

  6. 6

    与xampp相比,laragon有什么缺点吗?

  7. 7

    使用异步有什么缺点吗?

  8. 8

    C ++-递归结构-有可能吗?

  9. 9

    C ++模板:是否内联了模板实例?性能上有缺点吗?

  10. 10

    递归和非递归锁(Mutex)

  11. 11

    在 C++ 项目中保留未使用的类有什么缺点?

  12. 12

    我的C ++递归函数有什么问题?

  13. 13

    互斥锁与C ++ 11中的pthread兼容吗?

  14. 14

    发布没有 <form> 标签的表单有什么缺点吗

  15. 15

    为什么锁要求C#中的实例?

  16. 16

    Web应用程序中C3P0的这种含义正确吗?这种实现的优缺点是什么?

  17. 17

    锁为什么不锁?

  18. 18

    在c#中,Interlocked类中是否有锁或队列?

  19. 19

    使用有什么缺点吗?charset =“ UTF-8”

  20. 20

    使用load-grunt-task有什么缺点吗?

  21. 21

    在GCC中使用-O3有什么缺点吗?

  22. 22

    重写ThreadPoolExecutor afterExecute方法-有什么缺点吗?

  23. 23

    使用rEFInd代替GRUB有什么缺点吗?

  24. 24

    在asp.net中,RequiredFieldValidator有什么缺点吗?

  25. 25

    使用nohup执行shell脚本有什么缺点吗?

  26. 26

    使用rm $ {ls)删除文件有什么缺点吗?

  27. 27

    使用jpg而不是png截屏有什么缺点吗?

  28. 28

    使用 openat() 进行路径解析有什么缺点吗?

  29. 29

    近似内容长度标头有什么缺点吗?

热门标签

归档