執行緒的建立、等待、退出
多執行緒程式的編譯時,一定記得要加入動態庫,例如:gcc k.c -o k -lpthread,但執行時卻不用加。
首先#include <pthread.h>。
執行緒的建立:int pthread_create(&執行緒名字,NULL,執行緒執行函式名,傳遞的引數*arg),執行函式必須是這種:void *func(),可以帶引數,也可以不帶,函式體隨意。成功則返回0。
執行緒的等待(所謂等待,就是函式名稱的字面意思):int pthread_join(直接是執行緒名字,儲存執行緒返回值的指標void **returnValue)。成功則返回0。
執行緒的退出:void pthread_exit(void *returnValue),返回值就是一個字串,可以由其他函式,如等待函式pthread_join來檢測獲取其返回值。
複製程式碼
//這是最簡單的使用了
#include <stdio.h>
#include <pthread.h>
void *func(void *arg)
{
printf("arg=%d\n", *(int *)arg);
pthread_exit("bye bye");
}
int main()
{
int res;
pthread_t first_thread;
int share_int = 10;
res = pthread_create(&first_thread, NULL, func, (void *)&share_int);
printf("res=%d\n", res);
void *returnValue;
res = pthread_join(first_thread, &returnValue);
printf("returnValue=%s\n", (char *)returnValue);
return 0;
}