c c 多執行緒程式設計基礎講解(三)

2021-06-01 06:37:18 字數 1103 閱讀 9487

#include #include using namespace std;

#define num_threads 5

void* say_hello(void* args)

int main()

}pthread_exit(null);

}

編譯、執行,結果如下:

current pthread id =139671233451792

current pthread id =139671222961936

current pthread id =139671212472080

current pthread id =139671201982224

current pthread id =139671191492368

hello in 4196496

hello in 4196496

hello in 4196496

hello in 4196496

hello in 4196496

是否發現了問題?對,i的值沒有輸出預想的結果,這是因為多執行緒造成的,主程序在i還未賦值時,執行緒已經開始跑啦!~

那麼下面**是正確的:

#include #include using namespace std;

#define num_threads 5

void* say_hello(void* args)

int main()

}for (int i = 0; i < num_threads; ++i)

pthread_join(tids[i], null);

}

編譯、執行:(源程式去掉了列印執行緒id的廢話)

[cpp@node2 pthread]$ ./ex_create_args_ok

hello in thread 3

hello in thread 4

hello in thread 2

hello in thread 1

hello in thread 0

c c 多執行緒程式設計基礎講解(一)

利用幾篇文章簡單記錄下c與c 多執行緒程式設計基礎入門的東西,每篇乙個程式來記錄,備忘。這些章節是由淺入深組織的!在注釋中講吧,佛樓公尺!cpp view plain copy include include 標頭檔案是必須的,符合posix標準使程式可移植眾多平台 using namespace ...

c c 多執行緒程式設計基礎講解(四)

經過前面的幾個例子,是不是還少個執行緒建立時屬性引數沒有提到,見下文示例 cpp view plain copy include include include include using namespace std define num threads 5 void say hello void ...

c c 多執行緒程式設計基礎講解(一)

利用幾篇文章簡單記錄下c與c 多執行緒程式設計基礎入門的東西,每篇乙個程式來記錄,備忘。這些章節是由淺入深組織的,賴死狗!在注釋中講吧,佛樓公尺!cpp view plain copy include include 標頭檔案是必須的,符合posix標準使程式可移植眾多平台 using namesp...