boost執行緒組

2021-09-06 04:12:01 字數 1198 閱讀 2634

呵呵,今天要寫乙個效能測試的程式,由於之前用過boost的thread,所以就採用了boost的thread庫

程式大概是根據指定的引數來生成多個執行緒來進行乙個操作…本來滿簡單的..但是之前時候不知道boost有程序組的支援…所以只能自己動態的建立一大堆 thread ..放到乙個容器中..然後在遍歷join下,然後再在結束前delete他們,很麻煩..不過最後還是實現了。不過就在完成之後,同事曉哲給我看了一下他的程式..用到了boost的thread_group ,這才發現原來boost也有程序組的支援阿…暈….剛才試著寫了乙個簡單的程式…呵呵,根據指定引數生成指定個數的子程式… 很簡單阿..再也不用遍歷一遍每乙個join一下了..join_all就搞定了..

下面是**,呵呵,很簡單吧

#include

#include

#include

using

namespace boost;

using

namespace std;

void runchild(

const

int n)

int main(

int argc, char

** argv)

num =

atoi

(argv[1]);

cout

<<

"我是主程式,我準備產生"

<< num <<

"個子執行緒"

<< endl;

for(

int i =

0; i < num; i++

)cout

<<

"我是主程式,我在等子執行緒執行結束"

<< endl;

threads.join_all()

;return0;

}

編譯&測試(我在我的ubuntu下測試的)

> g++ -g -wall -o0 test.cc -o boost -lboost_thread

> ./boost 3

*****output******
我是主程式,我準備產生3個子執行緒

我是第0個子執行緒

我是第1個子執行緒

我是主程式,我在等子執行緒執行結束

我是第2個子執行緒

程序程序10退出退出

程序2退出

boost建立執行緒池 boost庫使用 執行緒類

boost 庫中提供了兩種建立執行緒的方式,一種是單個執行緒建立,另外一種是執行緒組的建立,進行執行緒管理 thread 就是沒有組管理,與我們在linux下使用pthread create 函式是一樣的,只是在c 11中,引入了boost中的thread方法 包含標頭檔案 include usin...

boost多執行緒

linux下編譯多執行緒程式 g o 1.out 1.cpp i boost include l boost lib lboost thread 建立執行緒 標頭檔案 namespace boost thread 構造乙個表示當前執行執行緒的執行緒物件 explicit thread const b...

Boost執行緒學習

本文參考部落格 include include include include include include include void hello 第一種方式 最簡單方法 int main 01 int argc,char argv 第二種方式 複雜型別物件作為引數來建立執行緒 結構中也可以定義操...