Boost學習摘要 三線程

2021-08-28 15:33:59 字數 906 閱讀 3777

boost庫在工作(16)執行緒之一

boost::thread(boost::bind(run, 1));

boost庫在工作(17)執行緒之二

boost::thread_group

主要使用了boost庫里的執行緒池類thread_group,它提供了多個執行緒建立、儲存、退出等管理。比如使用create_thread函式可以建立多個執行緒,每個執行緒都呼叫函式run執行。使用join_all函式來確保所有執行緒執行,都從執行緒執行函式裡退出來,如果其中乙個執行緒沒有辦法退出,那麼就會一直等待的。

boost庫在工作(18)執行緒之三  死鎖

static boost::mutex mutexcout;      //boost::mutex鎖

boost::lock_guardautolock(mutexcout);

類boost::lock_guard,這個類是乙個自動鎖的類,所謂的自動鎖,就是在建構函式裡呼叫上鎖函式,在析造函式裡呼叫解鎖函式,這樣在這個類boost::lock_guard宣告的物件的生命週期內,都可以防止別的執行緒來訪問鎖住的相關**。

本例中由共用同乙個全域性鎖g_mutexall,並且在第乙個函式裡新增了自動鎖,也在第二個函式裡新增自動鎖,同時再呼叫第乙個函式,結果在第二個函式就形成了遞迴呼叫的關係,導致死鎖發生。

boost庫在工作(19)執行緒之四  防止死鎖

在boost庫里提供同乙個函式遞迴呼叫時使用的鎖boost::recursive_mutex,當同乙個執行緒呼叫時,碰到相同已經上鎖的鎖時,還可以繼續往下執行。這時就不用擔心同乙個執行緒呼叫不同的函式時造成死鎖了。

boost庫在工作(20)執行緒之五

讓執行緒執行類裡的成員函式

m_threadgroup.create_thread(boost::bind(&cthreadbase::run, this,i));

Linux多執行緒學習(三)執行緒屬性

執行緒的建立函式pthread creat的第二個引數為pthread attr t型別的指標 預設屬性建立執行緒時賦值null pthread attr t是乙個結構體型別,定義如下 typedef struct pthread attr t 執行緒屬性的使用步驟 建立屬性物件 以預設值初始化屬性...

多執行緒學習(三) 執行緒的屬性

屬性名稱 用途注意事項 id每個執行緒都有自己的id,用於識別不同的執行緒 被後續建立的執行緒使用 不允許被修改 name 便於使用者在開發 除錯或執行過程中區分每個不同的執行緒 定位問題等 清晰有意義的名字 預設的名稱 isdaemon true 代表是守護執行緒,false 非守護執行緒 使用者...

OpenMP(三) 執行緒同步

1.引言 在openmp中,執行緒同步機制包括互斥鎖同步機制和事件同步機制。2.互斥鎖同步 互斥鎖同步的概念類似於windows中的臨界區 criticalsection 以及windows和linux中的mutex以及vxworks中的semtake和semgive 初始化時訊號量為滿 即對某一塊...