函數(shù)簡介pthread_create是UNIX環(huán)境創(chuàng)建線程函數(shù)頭文件
#include<pthread.h>函數(shù)聲明int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(void*),void *restrict arg);返回值若成功則返回0,否則返回出錯編號參數(shù)第一個參數(shù)為指向線程標(biāo)識符的指針,第二個參數(shù)用來設(shè)置線程屬性,第三個參數(shù)是線程運行函數(shù)的起始地址, 最后一個參數(shù)是運行函數(shù)的參數(shù)。另外在編譯時注意加上-lpthread參數(shù),以調(diào)用靜態(tài)鏈接庫。因為pthread并非linux系統(tǒng)的默認(rèn)庫
2、pthread_join函數(shù)
函數(shù)簡介函數(shù)pthread_join用來等待一個線程的結(jié)束。函數(shù)原型為:
extern int pthread_join __P (pthread_t __th, void **__thread_return);參數(shù):第一個參數(shù)為被等待的線程標(biāo)識符,第二個參數(shù)為一個用戶定義的指針,它可以用來存儲被等待線程的返回值。這個函數(shù)是一個線程阻塞的函數(shù),調(diào)用它的函數(shù)將一直等待到被等待的線程結(jié)束為止,當(dāng)函數(shù)返回時,被等待線程的資源被收回。如果執(zhí)行成功,將返回0,如果失敗則返回一個錯誤號。
3、pthread_exit函數(shù)
函數(shù)原型
void pthread_exit(void* retval);函數(shù)簡介線程通過調(diào)用pthread_exit函數(shù)終止執(zhí)行,就如同進(jìn)程在結(jié)束時調(diào)用exit函數(shù)一樣。這個函數(shù)的作用是,終止調(diào)用它的線程并返回一個指向某個對象的指針。2、爆圖爆代碼
實現(xiàn)創(chuàng)建2個線程打印數(shù)據(jù)
3、結(jié)果展示
我們知道pthread_t得大小是8
然后pthread_exit是退出線程,看上面紅色的標(biāo)記就知道,線程id只有一個了,然后pthread_join是阻塞的,等待線程結(jié)束,如果不用這個函數(shù),直接ruturn的話,可能看不到打印,讀者可以自己測試下,pthread_create是創(chuàng)建線程的,注意是傳函數(shù)地址,也就是函數(shù)名,不是&函數(shù)名。
新聞熱點
疑難解答