如何在linux上使用boost thread C

2022-09-13 15:02:00 字數 1505 閱讀 6505

1樓:匿名使用者

使用boost thread的庫函式構建多執行緒的c++程式,了解了基本的thread建立,執行緒同步以及執行緒本地儲存的使用。都在乙個**例項中進行了 驗證。其中還有乙個條件變數的使用在不好在乙個**中實現,以後有時間在編寫驗證一下。

> file name: thread_demo.cpp

> author: liu xin

> mail: [email protected]

> created time: 2023年10月14日 星期日 10時54分46秒

#include

#include

#include

#include

#include

#include

using namespace std;

const int max_thread_num=5;

int gcount=0;

boost::mutex mutex;

boost::mutex io_mutex;

boost::thread_specific_ptrptr; // 執行緒本地儲存訪問

void hello(int ithreadid)

ptr.reset(new string("hello"));

for(int i=0; i<10; i++)

sleep(1);}}

int main()

;for (int i=0; ijoin();

std::cout << "thread all finished." << std::endl;

return 0;}說明

1、**實現了乙個執行緒函式,main函式中建立多個執行緒物件呼叫該執行緒函式,並等待每個執行緒結束

2、執行緒函式中先輸出兩行文字,因為io輸出是爭用資源,需要加鎖,否則會出現列印混亂

3、在for迴圈中,對共享資源gcount進行++操作,同時輸出到標準輸出中,也許要進行互斥體加鎖

4、加鎖mutex根據raii實現,也就是scope_lock,退出{}則自動解鎖,因此,此處sleep放在{}外面 是為了驗證多執行緒執行++gcount操作是真正的多執行緒。如果放在{}裡面的話,由於lock還未釋放,其他執行緒會一直等到本執行緒的for迴圈執行完成才獲得鎖,實際上變成了偽多執行緒了,無意義

5、boost::thread_specific_ptr是執行緒本地儲存的訪問 指標,用於驗證執行緒本地儲存的效果

boost thread 怎樣 返回值

2樓:mexico卡卡

1. 利用全域性函式作為執行緒函式

void startthread1()

如何才能使用boost中的正則庫和執行緒庫

3樓:約定

我的boost裡的正則庫是在linux下編譯的

編譯完後無非是自己手工新增連線庫路徑而已....

在vc6下曾經編譯過,新增了n多的路徑才能使用

如何在Linux中使用awk命令

柴半段幹珠星 awk 用於一行中分成數個 欄位 來處理。適合處理小型資料。執行模式 awk 條件型別1 條件型別2 filename last awk 檢視登入者的資料,只顯示登入名和ip地址,並以 tab 隔開awk的內建變數 變數名稱 代表的含義 nf每一行 0 擁有的欄位總數 nr當前 awk...

如何在linux下shell指令碼輸出帶顏色文字

誤資訊 0x?指令引用的0x00000000記憶體,該記憶體不能為read或written 然後應用程式被關閉。如果去請教一些 高手 得到的回答往往是 windows就是這樣不穩定 之類的義憤和不屑。其實,這個錯誤並不一定是windows不穩定造成的。本文就來簡單分析這種錯誤的常見原因。一 應用程式...

如何在棉布上上色,如何在棉布上上色

買丙烯顏料來塗,稍微大一點的文具店都有的。如果要自己動手就這樣子。如果只是上色。你買一塊黑色和濹藍色的布就好了嘛。不知道你的棉布是什麼規格的 9010的棉布可以使用熱轉印,低於這個規格的棉布,只能用活性的上色 或是用塗料印花 t恤手繪我倒來是玩過幾年 源用的是紡織品顏料 需求量大而需要顏色比較單一的...