提高:: lock_guard VS的boost ::互斥:: scoped_lock中 [英] boost::lock_guard vs boost::mutex::scoped_lock
问题描述
这是preferred 的boost :: lock_guard
或的boost ::互斥:: scoped_lock的
?
Which is preferred boost::lock_guard
or boost::mutex::scoped_lock
?
我使用Boost.Thread,希望当它成为可移动到C ++ 11线程。
I'm using Boost.Thread with the hope to move to C++11 threading when it becomes available.
是的scoped_lock
下一个C ++的一部分标准?
Is scoped_lock
part of the next c++ standard?
是任何优势,以preFER一个比其他?
Are the any advantages to prefer one over the other?
的注意的:我知道,的scoped_lock
只是一个的typedef
lock_guard
。
NOTE: I'm aware that scoped_lock
is just a typedef
of lock_guard
.
编辑:我错了的scoped_lock
是不会 的typedef
的 lock_guard
。这是一个的typedef
的 unique_lock
。
edit: I was wrong scoped_lock
is not a typedef
of lock_guard
. It's a typedef
of unique_lock
.
推荐答案
艾米特是正确的:的boost ::互斥:: scoped_lock的
是的typedef
为的boost :: unique_lock<提高::互斥>
,而不是 lock_guard
。 的scoped_lock
是C ++ 0x中不可用。
Amit is right: boost::mutex::scoped_lock
is a typedef
for boost::unique_lock<boost::mutex>
, not lock_guard
. scoped_lock
is not available in C++0x.
除非你需要的unique_lock
的灵活性,我会用 lock_guard
。它更简单,并且更清楚地恩presses意图锁限制在确定的范围。
Unless you need the flexibility of unique_lock
, I would use lock_guard
. It is simpler, and more clearly expresses the intent to limit the lock to a defined scope.
这篇关于提高:: lock_guard VS的boost ::互斥:: scoped_lock中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!