Linux 多執行緒程式設計入門 執行緒函式解釋

2021-05-01 06:42:10 字數 3412 閱讀 3965

建立執行緒:

intpthread_create(pthread_t *restrict thread,

const

pthread_attr_t *restrict attr,

void

*(*start_routine)(

void

*), 

void

*restrict arg);

引數:

thread

輸出執行緒id

attr 

執行緒屬性, 預設null

start_routine

執行緒執行函式

arg 執行緒執行引數

note:函式成功返回0 否則返回錯誤碼

標頭檔案 pthread.h

庫檔案 pthread

退出執行緒:

intpthread_exit(

void

* value_ptr);

引數:

value_ptr 

執行緒返回值指標

note: ptrhead_exit()退出呼叫此函式的執行緒並釋放該執行緒占用的資源

標頭檔案 pthread.h

庫檔案 pthread

等待指定執行緒結束:

intpthread_join(pthread_t thread,

void

**value_ptr);

引數:

thread

乙個有效的執行緒id

value_ptr 

接收執行緒返回值的指標

note:呼叫此函式的執行緒在指定的執行緒退出前將處於掛起狀態或出現錯誤而直接返回

如果value_ptr非null則value_ptr指向執行緒返回值的指標

函式成功後指定的執行緒使用的資源將被釋放

標頭檔案 pthread.h

庫檔案 pthread

獲取當前執行緒id:

pthread_t pthread_self(

void

);引數:

note:返回當前函式的id

標頭檔案 pthread.h

庫檔案 pthread

互斥:

說到多執行緒,最關心的就是資料訪問

/ 改變的同步問題。

windows

下有臨界區和訊號事件等手段來防止多個執行緒同時讀

/ 寫同乙個資料,那麼

linux

呢?多執行緒變成時多使用互斥

pthread_mutex_t

來起到防止同時訪問或改變同一資料

.

建立互斥:

intpthread_mutex_init(pthread_mutex_t *restrict mutex,

const

pthread_mutexattr_t *restrict attr);

引數:

mutex

輸出互斥id

attr 

互斥屬性, 預設null

note:函式成功返回0 否則返回錯誤碼

標頭檔案 pthread.h

庫檔案 pthread

鎖住互斥:

intpthread_mutex_lock(pthread_mutex_t *mutex);

引數:

mutex

互斥id

note:如果指定的互斥id已經被鎖住那麼呼叫執行緒在互斥id完全解鎖前將

一直處於掛起狀態,否則將鎖住互斥體

標頭檔案 pthread.h

庫檔案 pthread

int  pthread_mutex_trylock(pthread_mutex_t *mutex);

引數:

mutex

互斥id

note:如果指定的互斥id已經被鎖住那麼將直接返回乙個錯誤,通過判斷

此錯誤來進行不同的處理

標頭檔案 pthread.h

庫檔案 pthread

解鎖互斥:

intpthread_mutex_unlock(pthread_mutex_t *mutex);

引數:

mutex

互斥id

note:如果指定的互斥id已經被鎖住那麼對其解鎖

標頭檔案 pthread.h

庫檔案 pthread

釋放互斥:

intpthread_mutex_destroy(pthread_mutex_t *mutex);

引數:

mutex

互斥id

note:釋放指定的mutex占用的資源

標頭檔案 pthread.h

庫檔案 pthread

Linux 多執行緒程式設計入門

建立執行緒 intpthread create pthread t restrict thread,const pthread attr t restrict attr,void start routine void void restrict arg 引數 thread 輸出執行緒id attr ...

Linux多執行緒 pthread exit函式

執行緒的終止可以呼叫pthread exit函式來結束。也就是說,乙個執行緒可以隱式的退出,也可以顯式的呼叫pthread exit函式來退出。pthread exit函式唯一的引數value ptr是函式的返回 include void pthread exit void retval threa...

Linux 多執行緒程式設計入門 執行緒函式解釋

建立執行緒 intpthread create pthread t restrictthread,const pthread attr t restrictattr,void start routine void void restrictarg 引數 thread 輸出執行緒id attr 執行緒...