【发布时间】:2013-05-13 21:04:02
【问题描述】:
我希望有人能告诉我我对以下 3 把锁的理解是否正确,并可能补充。我主要关心的是速度和开销最小。
boost::lock_guardboost::unique_lockboost::scoped_lock
boost::lock_guard 是最轻的一种锁,只在进程的成员之间共享。 unique_lock 是 lock_guard 的改进版本,具有更多功能。 scoped_lock 允许跨不同进程锁定。scoped_lock 是所有锁中最重的。我的理解是否正确。但是,线程here 声明 scoped_lock 类似于 unique_lock。如果是这样,这是否意味着scoped_lock 和unique_lock 一样重?
【问题讨论】:
-
你能澄清一下你问的是哪个 Boost 库吗?您链接到的问题是讨论 Boost.Thread,但该库在命名空间级别不包含名为
scoped_lock的类(仅类级别 typedefs)。您还提到了进程之间的共享,这表明 Boost.Interprocess (在boost::interprocess命名空间中有一个名为scoped_lock的类)。谢谢。
标签: c++ multithreading boost locking mutex