c 多執行緒 傳參

2021-09-27 06:24:43 字數 954 閱讀 6641

// 向執行緒傳遞引數(1)

// 必要的標頭檔案

#include

// 多線成標頭檔案

#include

// c的stdlib標頭檔案

#include

// 最好不要用

using namespace std;

// 巨集定義

#define numthread 5

//定義乙個函式,列印hello world,這個函式有傳入值

void* pringhw(void *params)

// 定義乙個int變數,對傳入指標params解引用

int order = *((int *)params);

cout<<"what' your problem!"<<"<--->"pthread_exit(null);

// 定義乙個主函式

int main()

//定義線成的id變數,因為有多個變數,所以使用陣列

pthread_t thread_id[numthread];

int index[numthread], rc;

// 依次建立thread_id個執行緒

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

cout << "main() : 建立執行緒, " << i << endl;

index[i] = i;

// 引數依次是:建立的執行緒id,執行緒引數,呼叫的函式,傳入的函式引數

rc = pthread_create(&thread_id[i], null, pringhw, (void*)&(index[i]));

// 判斷

if (rc)

cout << "error:無法建立執行緒," << rc << endl;

exit(-1);

pthread_exit(null);

return 0;

多執行緒傳參

1.要避免的陷阱 1 用detach 時,如果主線程先結束,變數就會被 所以用detach 的話,不推薦用引用,同時絕對不能用指標。include include using namespace std void myprint const int i,char pmybuf intmain 2 在...

關於多執行緒傳參問題

無引數 我們都知道使用多執行緒最簡單的方式是下面這樣 void somemethod void createthread 乙個引數 但是如果要是想給somemethod方法傳入引數的話,發現這種方法不好用了 因為thread類並不支援這樣 但是為了解決這個問題,類庫中提供了乙個支援的 使用它可以支援...

關於多執行緒傳參問題

無引數 我們都知道使用多執行緒最簡單的方式是下面這樣 void somemethod void createthread 乙個引數 但是如果要是想給somemethod方法傳入引數的話,發現這種方法不好用了 因為thread類並不支援這樣 但是為了解決這個問題,類庫中提供了乙個支援的 使用它可以支援...