2010-02-16 144 views
36

哪一個是首選boost::lock_guardboost::mutex::scoped_lockboost :: lock_guard vs boost :: mutex :: scoped_lock

我正在使用Boost.Thread,希望在C++ 11線程變爲可用時轉向它。

scoped_lock下一個C++標準的一部分?

是否有優於其他的優點?


:我知道,scoped_lock只是lock_guardtypedef


編輯:我錯了scoped_locklock_guard一個typedef。這是一個typedefunique_lock

回答

28

Amit是正確的:boost::mutex::scoped_locktypedef對於boost::unique_lock<boost::mutex>而不是lock_guard。 C++ 0x中不提供scoped_lock

除非您需要unique_lock的靈活性,否則我會使用lock_guard。它更簡單,並且更清楚地表達了將鎖定限制在定義範圍的意圖。

24

兩者之間沒有太大的區別。根據Boostscoped_lockunique_lock<mutex>的typedef。 unique_locklock_guard都實現RAII式鎖定。簡單地說,unique_lock具有更復雜的界面 - 它允許推遲鎖定和呼叫解鎖。

相關問題