boost :: lock_guard vs boost :: mutex :: scoped_lock
哪一个是首选boost::lock_guard或boost::mutex::scoped_lock ?
我正在使用Boost.Thread,希望在C ++ 11线程变为可用时转向它。
scoped_lock是下一个c ++标准的一部分吗?
有什么优势比其他优先?
注意 :我知道scoped_lock只是lock_guard的typedef 。
编辑:我错了scoped_lock 不是 lock_guard typedef 。 这是unique_lock的typedef 。
Amit是正确的: boost::mutex::scoped_lock是boost::unique_lock<boost::mutex>的typedef ,而不是lock_guard 。 scoped_lock在C ++ 0x中不可用。
除非你需要unique_lock的灵活性, unique_lock我会使用lock_guard 。 它更简单,并且更清楚地expression了将locking限制在定义范围的意图。
两者差别不大。 根据Boost , scoped_lock是unique_lock<mutex>的typedef。 unique_lock和lock_guard实现了RAII风格的locking。 简单地说, unique_lock具有更复杂的界面 – 它允许推迟locking和调用解锁。