boost::mutex::scoped_lock
??????? 在三維重建過程中,世界地圖 Map &world作為唯一 訪問/更新 對象,可以使用boost::mutex::scoped_lock 。
一:boost::mutex::scoped_lock
??? ? ? 使用boost進行線程管理簡單使用boost::mutex 。
? ? ? ? mutex對象本身并不知道它代表什么,它僅僅是被多個消費者線程使用的資源訪問的鎖定解鎖標志。在某個時刻,只有一個線程可以鎖定這個mutex對象,這就阻止了同一時刻有多個線程并發訪問共享資源。一個mutex就是一個簡單的信號機制。
??????? 給mutex加解鎖有多種策略,最簡單的是使用scoped_lock類,它使用一個mutex參數來構造,并一直鎖定這個mutex直到對象被銷毀。如果這個正在被構造的mutex已經被別的線程鎖定的話,當前線程就會進入wait狀態,直到這個鎖被解開。
稍微詳細的一點介紹參考:Boost鎖~臨界區保護和臨界資源共享
??????? mutex鎖不分讀寫,作為智能鎖是需要一定的使用代價的。
一種具體實現參考:mutex、condition、scope_lock的簡單實現
二、讀寫鎖的使用:
?????? 參考:Boost線程庫學習筆記?
?????? 文章給出了詳細的讀寫鎖 boost::read_write_mutex的使用方法,省去了自己再寫解死鎖方法的勞動。并且對一些經典鎖死現象進行了代碼級分析和解決方案提出,課件作者付出了大量的勞動。
總結
以上是生活随笔為你收集整理的boost::mutex::scoped_lock的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 旺影速转如何压缩视频?旺影速转压缩视频的
- 下一篇: TikTok 东南亚月活用户已超 3 亿