1. 程式人生 > >執行緒的建立、等待、退出

執行緒的建立、等待、退出

多執行緒程式的編譯時,一定記得要加入動態庫,例如: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;
}