【问题标题】:What happens to the lock in the following situation, when cond is true?当 cond 为真时,在以下情况下,锁会发生什么?
【发布时间】:2012-04-11 07:31:12
【问题描述】:

我有这个代码,考虑到 cond 是真的,现在任何人都可以回答在以下情况下锁会发生什么:-

for (;;) {
static mutex m;
Lock lock(m);
if (cond)
break;
... 
} 

谢谢

【问题讨论】:

    标签: c++ thread-safety mutex locks


    【解决方案1】:

    假设Lock类遵循RAII原则,它将解锁互斥锁。

    【讨论】:

    • 它会自动解锁互斥锁吗?
    • 是的,这就是 RAII 的重点。它应该在 Lock 的析构函数中解锁它,当作用域展开(退出 for 循环)时会调用它。
    【解决方案2】:

    RAII 允许在作用域结束时解锁互斥锁。

    这是另一个例子Scooped Lock

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-24
      • 2011-07-23
      • 1970-01-01
      相关资源
      最近更新 更多