pthread 常用函式
來源:網路部落格 作者:秩名
int pthread_create(
pthread_t *tid,
const pthread_attr_t *attr,
void*(*start_routine)(void*),
void *arg
);
//引數tid 用於返回新建立執行緒的執行緒號;
//start_routine 是執行緒函式指標,執行緒從這個函式開始獨立地執行;
//arg 是傳遞給執行緒函式的引數。由於start_routine 是一個指向引數型別為void*,返回值為void*的指標,所以如果需要傳遞或返回多個引數時,可以使用強制型別轉化。
void pthread_exit(
void* value_ptr
);
// 引數value_ptr 是一個指向返回狀態值的指標。
int pthread_join(
pthread_t tid ,
void **status
);
// 引數tid 是希望等待的執行緒的執行緒號,status 是指向執行緒返回值的指標,執行緒的返回值就是pthread_exit 中的value_ptr 引數,或者是return語句中的返回值。該函式可用於執行緒間的同步。
int pthread_mutex_init(
pthread_mutex_t *mutex,
const pthread_mutex_attr_t* attr
);
//該函式初始化一個互斥體變數,如果引數attr 為NULL,則互斥
//體變數mutex 使用預設的屬性。
int pthread_mutex_lock(
pthread_mutex_t *mutex
);
// 該函式用來鎖住互斥體變數。如果引數mutex 所指的互斥體已經
//被鎖住了,那麼發出呼叫的執行緒將被阻塞直到其他執行緒對mutex 解鎖。
int pthread_mutex_trylock(
pthread_t *mutex
);
//該函式用來鎖住mutex 所指定的互斥體,但不阻塞。如果該互斥
//體已經被上鎖,該呼叫不會阻塞等待,而會返回一個錯誤程式碼。
int pthread_mutex_unlock(
pthread_mutex_t *mutex
);
//該函式用來對一個互斥體解鎖。如果當前執行緒擁有引數mutex 所
//指定的互斥體,該呼叫將該互斥體解鎖。
int pthread_mutex_destroy (
pthread_mutex_t *mutex
);
//該函式用來釋放分配給引數mutex 的資源。呼叫成功時返回值為
//0, 否則返回一個非0 的錯誤程式碼。
int pthread_cond_init(
pthread_cond_t *cond,
const pthread_cond_attr_t*attr
);
//該函式按引數attr指定的屬性建立一個條件變數。呼叫成功返回,
//並將條件變數ID 賦值給引數cond,否則返回錯誤程式碼。
int pthread_cond_wait (
pthread_cond_t *cond ,
pthread_mutex_t*mutex
);
// 該函式呼叫為引數mutex 指定的互斥體解鎖,等待一個事件(由
//引數cond 指定的條件變數)發生。呼叫該函式的執行緒被阻塞直到有其他
//執行緒呼叫pthread_cond_signal 或pthread_cond_broadcast 函式置相應的條
//件變數,而且獲得mutex 互斥體時才解除阻塞。
int pthread_cond_timewait(
pthread_cond_t *cond ,
pthread_mutex_t*mutex ,
const struct timespec *abstime
);
// 該函式與pthread_cond_wait 不同的是當系統時間到達abstime 引數指定的時間時,被阻塞執行緒也可以被喚起繼續執行。
int pthread_cond_broadcast(
pthread_cond_t *cond
);
// 該函式用來對所有等待引數cond所指定的條件變數的執行緒解除阻塞,呼叫成功返回0,否則返回錯誤程式碼。
int pthread_cond_signal(
pthread_cond_t *cond
);
// 該函式的作用是解除一個等待引數cond所指定的條件變數的執行緒的阻塞狀態。當有多個執行緒掛起等待該條件變數,也只喚醒一個執行緒。
int pthread_cond_destroy(
pthread_cond_t *cond
);
// 該函式的作用是釋放一個條件變數。釋放為條件變數cond 所分配的資源。呼叫成功返回值為0,否則返回錯誤程式碼。
int pthread_key_create(
pthread_key_t key ,
void(*destructor(void*))
);
// 該函式建立一個鍵值,該鍵值對映到一個專有資料結構體上。如果第二個引數不是NULL,這個鍵值被刪除時將呼叫這個函式指標來釋放資料空間。
int pthread_key_delete(
pthread_key_t *key
);
// 該函式用於刪除一個由pthread_key_create 函式呼叫建立的TSD鍵。呼叫成功返回值為0,否則返回錯誤程式碼。
int pthread_setspecific(
pthread_key_t key ,
const void(value)
);
// 該函式設定一個執行緒專有資料的值,賦給由pthread_key_create 建立的TSD 鍵,呼叫成功返回值為0,否則返回錯誤程式碼。
void *pthread_getspecific(
pthread_key_t *key
);
// 該函式獲得繫結到指定TSD 鍵上的值。呼叫成功,返回給定引數key 所對應的資料。如果沒有資料連線到該TSD 鍵,則返回NULL。
int pthread_once(
pthread_once_t* once_control,
void(*init_routine)(void)
);
//該函式的作用是確保init_routine 指向的函式,在呼叫pthread_once的執行緒中只被執行一次。once_control 指向一個靜態或全域性的變數。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24790158/viewspace-1040412/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 多執行緒函式系列pthread_create(), pthread_join(), pthread_self(),pthread_exit(), pthread_detach()例項詳解執行緒函式thread
- pthread_cond_wait()函式的理解threadAI函式
- Mysql 常用函式(1)- 常用函式彙總MySql函式
- 常用函式函式
- 常用函式--時間函式函式
- Mysql 常用函式(15)- upper 函式MySql函式
- PHP 常用函式PHP函式
- PHP常用函式PHP函式
- js 常用函式JS函式
- MySQL 常用函式MySql函式
- MySQL 常用函式。MySql函式
- 常用函式集合函式
- 常用助手函式函式
- 常用函式整理函式
- jQuery常用函式jQuery函式
- SqlServer常用函式SQLServer函式
- js常用函式JS函式
- ORACLE 常用 函式Oracle函式
- MySQL常用函式MySql函式
- oracle 常用函式Oracle函式
- RFT常用函式函式
- Oracle常用函式Oracle函式
- QT常用函式QT函式
- Hive常用函式及自定義函式Hive函式
- 核函式 多項式核函式 高斯核函式(常用)函式
- 15個常用excel函式公式 excel函式辦公常用公式Excel函式公式
- TensorFlow常用函式函式
- Hyperf 常用助手函式函式
- Carbon 類常用函式函式
- PHP常用函式大全PHP函式
- 常用的Css函式CSS函式
- 常用函式彙總函式
- PHP常用函式篇PHP函式
- loadrunner常用函式函式
- kotlin常用函式Kotlin函式
- javascript常用函式大全JavaScript函式
- 常用啟用函式函式
- Spark Graphx常用函式Spark函式