#include
int
pthread_create
(pthread_t *restrict tidp,
const pthread_attr_t *restrict_attr,
void
*(*start_rtn)
(void*)
,void
*restrict arg)
;
返回值若成功則返回0,否則返回出錯編號
引數
第乙個引數為指向執行緒識別符號的指標。
第二個引數用來設定執行緒屬性。
第三個引數是執行緒執行函式的位址。
最後乙個引數是執行函式的引數。
注意
在編譯時注意加上-lpthread引數,以呼叫靜態鏈結庫。因為pthread並非linux系統的預設庫。
函式簡介
函式pthread_join用來等待乙個執行緒的結束。
函式原型為:
int pthread_join (pthread_t thread,
void
** retval)
;
引數:第乙個引數為被等待的執行緒識別符號
第二個引數為乙個使用者定義的指標,它可以用來儲存被等待執行緒的返回值。
注意
這個函式是乙個執行緒阻塞的函式,呼叫它的函式將一直等待到被等待的執行緒結束為止,當函式返回時,被等待執行緒的資源被收回。如果執行成功,將返回0,如果失敗則返回乙個錯誤號。
函式介紹
函式使執行緒退出,並返回乙個空指標型別的值。
乙個執行緒的結束有兩種途徑:
①函式已經結束,呼叫它的執行緒也就結束了
②通過函式pthread_exit來實現
原型
void
pthread_exit
(void
*retval)
引數唯一的引數是函式的返回**
pthread_exit(void *ptr) 函式使執行緒退出,並返回乙個空指標型別的值。
pthread_join(pthread_t tid,void **rtval)呼叫此函式的程序/執行緒等id為tid的執行緒返回或被終止,並從它那裡獲得返回值。
//呼叫pthread_jion函式,獲得執行緒的飯hi之。
void
*retval;
iret=
pthread_join
(tid,
&retval);if
(iret)
printf
("retval=%ld\n",(
long
)retval)
;return0;
}編譯 g++ -lpthread -o test test.cpp,這裡需要連線靜態庫檔案pthread。執行./test命令可以得到
用hello::say_hello傳入呼叫函式
#include
#include
class
hello};
intmain()
void
*retval;
iret=
pthread_join
(tid,
&retval);if
(iret)
printf
("retval=%ld\n",(
long
)retval)
;return0;
}
#include
#include
void
*say_hello
(void
* args)
intmain()
void
*retval;
iret=
pthread_join
(tid,
&retval);if
(iret)
printf
("retval=%ld\n",(
long
)retval)
;return0;
}
傳入時直接引用結構體位址即可
#include
#include
#include
struct arg_type
;void
*say_hello
(void
* args)
intmain()
void
*retval;
iret=
pthread_join
(tid,
&retval);if
(iret)
printf
("retval=%ld\n",(
long
)retval)
;return0;
}
//第一種
void
*function
(void
*arg)
//第二種
intmain()
printf
("pthread id in process = %lu\n"
,thread)
;}
後端開發核心技術 第5章除錯 strace
所有作業系統在其核心都有一些內建的函式,這些函式可以用來完成一些系統級別的功能,這些函式被稱為系統呼叫,這些函式代表了使用者空間到核心空間的一種轉換 例如使用者空間呼叫open函式,在核心空間中則會呼叫sys open。系統呼叫並不直接返回錯誤碼,而是將錯誤碼放入到乙個名為errno的全域性變數中。...
多執行緒核心技術 多執行緒技能
1 建立執行緒的方法 繼承thread,實現runnable 注意 例項變數與執行緒安全 2 具體方法 isalive 判斷執行緒狀態,進入準備生命週期的執行緒返回true sleep 睡眠,需要跑出interrupt異常以便執行緒打斷丟擲 如果在sleep的執行緒被打斷,sleep會被設定為fal...
後端開發核心技術 第7章網路IO模型 poll
include intpoll struct pollfd fds,unsigned int nfds,int timeout 1 fds 指向乙個結構體陣列的第0個元素的指標,每個陣列元素都是乙個struct pollfd結構,用於指定測試某個給定的fd的條件 2 nfds 表示fds結構體陣列的...