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
。
最佳答案
阿米特是对的:boost::mutex::scoped_lock
是 typedef
对于 boost::unique_lock<boost::mutex>
,不是lock_guard
。 scoped_lock
在 C++0x 中不可用。
除非您需要 unique_lock
的灵 active ,我会使用 lock_guard
。它更简单,更清楚地表达了将锁限制在定义的范围内的意图。
关于boost::lock_guard 与 boost::mutex::scoped_lock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2276805/