boost併發程式設計(一) 互斥鎖

2021-07-03 08:08:36 字數 833 閱讀 7595

這個系列其實是《boost程式庫完全開發指南》的讀書筆記。按照書中的方法**沒跑起來,所以轉到ubuntu下學習了。boost庫在ubuntu下的安裝,直接用apt-get install命令安裝就可以了,需要安裝libboost-dev libboost-system libboost-thread

我們直接上**,通過講解**來學習。一方面,更詳細的內容請參看原書,在此不作重複;另一方面,先把**跑起來比看了半天書連幾行**都執行不起來更能激勵學習。

#include #include #include #define boost_date_time_source

#define boost_thread_no_lib

using namespace boost;

int main()

std::cout << std::endl;

return 0;

}

mutex是最簡單最常用的互斥變數,但如果手工寫**維護互斥鎖的狀態既繁瑣又容易出錯,因此boost庫提供了一系列raii型的lock_guard類來自動做這些工作。mutex類中的scope_lock類是其中一種,顧名思義,它的類物件根據作用域來解鎖互斥量。在作用域中用乙個互斥量來初始化scope_lock物件,互斥量即被鎖定;在離開作用域後,會自動呼叫scope_lock類的析構函式,解鎖互斥量。

thread物件接受乙個函式和這個函式的引數作為建構函式的引數來構造執行緒,這個執行緒就負責用相應的引數呼叫指定函式。然後呼叫thread物件的join方法,使主線程阻塞直到子執行緒執行完畢,以免主線程過早結束時銷毀所有子執行緒使執行緒來不及執行完畢。

就簡單解釋到這裡吧,下回見!

boost併發程式設計(一) 互斥鎖

這個系列其實是 boost程式庫完全開發指南 的讀書筆記。按照書中的方法 沒跑起來,所以轉到ubuntu下學習了。boost庫在ubuntu下的安裝,直接用apt get install命令安裝就可以了,需要安裝libboost dev libboost system libboost thread...

boost互斥鎖 boost鎖使用總結

boost鎖的概述 boost庫中提供了mutex類與lock類,通過組合可以輕易的構建讀寫鎖與互斥鎖。舉個通俗的例子,如果共享資源是乙個自動鎖住的房間,互斥體是鑰匙,進入房間必須取鑰匙,離開房間應該還鑰匙。這就對應著互斥體的lock 取鑰匙 和unlock 還鑰匙 動態分配記憶體存在類似的情況。如...

boost互斥鎖 boost 同步 互斥量的概念

互斥物件有利於實現多執行緒中資料的執行緒安全。執行緒呼叫鎖函式來獲得互斥物件的所有權,呼叫對應的解鎖函式來放棄所有權。互斥量可以是遞迴或非遞迴的,並且可以同時把所有權賦給多個執行緒。boost.thread提供獨佔的遞迴 非遞迴互斥量,以及共享 多讀單一寫 互斥量。basiclockable概念 b...