boost - std::lock/std::try_lock 是否有 try_lock_for 和 try_lock_until 的模拟?

标签 boost c++14

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

还有 TimedMutex概念,添加方法 try_lock_fortry_lock_until 将超时语义添加到 try_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?

最佳答案

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

我也不认为过去有任何提案,但我可能在一年前的 C++0x 过程中就错过了。

我认为这些函数的用例比 std::lockstd::try_lock

的用例要少得多

关于boost - std::lock/std::try_lock 是否有 try_lock_for 和 try_lock_until 的模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258359/

相关文章:

c++ - Boost 图形库 C++/幂律

python - Boost.Python 和 C++ std::vector of pointers

c++ - std::move weak_ptr::lock 的返回值弄乱了 shared_ptr 的引用计数?

c++ - 可能的 : Program executing Qt3 and Qt4 code?

c++ - tr1::shared_ptr 和 boost::shared_ptr 的区别?

c++ - 比较函数不适用于 equal_range

c++ - 在奇怪的重复模板类中使用方法的返回类型作为另一个方法的参数类型

c++ - 应用程序后台时线程被杀死?

c++ - 5 与 std::move(5) 的行为差异

c++ - 如何检查指针是否指向正确对齐的内存位置?