【问题标题】:Is there an analog for std::lock/std::try_lock for try_lock_for and try_lock_until?try_lock_for 和 try_lock_until 是否有 std::lock/std::try_lock 的模拟?
【发布时间】:2014-06-09 02:47:19
【问题描述】:

当获取多个互斥锁(或使用 boost,一个互斥锁的迭代器范围)时,我们可以使用std::lockboost::lock 来避免由于锁排序导致的死锁。使用 Lockable 概念有类似的 std::try_lockboost::try_lock 函数。

还有TimedMutex的概念,它增加了方法try_lock_fortry_lock_untiltry_lock增加了超时语义。是否有类似std::lock 的计划,可以避免死锁并支持超时语义(大概是std::try_lock_for(Lockable1& lock1, Lockable2& lock2, LockableN& lockn...)std::try_lock_until(Lockable1& lock1, Lockable2& lock2, LockableN& lockn...))?

同样,SharedTimedMutex 函数 lock_sharedtry_lock_sharedtry_lock_shared_fortry_lock_shared_until 是否计划了避免死锁的函数?

【问题讨论】:

    标签: boost c++14


    【解决方案1】:

    不,我不知道有任何添加这些功能的提议。

    我也不相信有任何过去的提议,但我可能错过了一年前的 C++0x 进程。

    我认为这些功能的用例会比 std::lockstd::try_lock 的用例少得多

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-04
      • 2018-06-26
      • 2016-02-27
      • 2016-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多