什麼是執行緒
fork和建立新執行緒的區別
執行緒的優點
執行緒的缺點
執行緒函式庫
執行緒識別符號
int
pthread_create
(pthread_t *thread,
pthread_attr_t *attr,
void*(
*start_routine)
(void*)
,void
*arg)
;
"void* (start_routine)(void) "表示需要我們傳遞的乙個函式位址,該函式以乙個指向void的指標為引數,返回的也是乙個指向void的指標。呼叫成功時返回值是「0」,如果失敗則返回乙個錯誤。
void pthread_exit (
void
*retbal)
;
int
pthread_join
(pthread_t th,
void
**thread_return)
;
建立乙個執行緒預設的狀態是joinable,如果乙個可結合執行緒結束執行但沒有被join,則它的狀態類似於程序中的zombie process,即還有一部分資源沒有被**,所以建立執行緒者應該呼叫pthread_join來等待執行緒執行結束,並可得到執行緒的退出**,**其資源。
#include
#include
#include
#include
#include
char message=
"hello world"
;void
*thread_function
(void
*arg)
intmain()
printf
("waiting for thread to finish..\n");
void
*thread_result;
res =
pthread_join
(a_thread,
&thread_result);if
(res !=0)
printf
("thread joined, it returned %s\n",(
char
*)thread_result)
;printf
("message is now %s\n"
,message)
;exit
(exit_success)
;return0;
}
pthread_detach示例
#include
#include
#include
void
*print_message
(void
*ptr)
intmain
(int argc,
char
*ar**)
return0;
}
POSIX執行緒多執行緒例子
include include include include define num threads 6 void thread function void arg int main sleep 1 printf waiting for threads to finish.n for lots of...
posix多執行緒 互斥量
1.互斥量初始化兩種方式 1 靜態初始化 include typedef struct my struct tag my struct t my struct t data int main int argc,char argv 2 動態初始化 include typedef struct my s...
posix多執行緒 條件變數
條件變數是用來通知共享資料狀態資訊的。1.條件變數初始化兩種方式 1 靜態初始化 pthread cond t cond pthread cond initializer 示例如下 include typedef struct my struct tag my struct t my struct ...