// 向執行緒傳遞引數(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類並不支援這樣 但是為了解決這個問題,類庫中提供了乙個支援的 使用它可以支援...