執行緒 執行緒訊號量等常用函式小結

2021-07-24 04:49:15 字數 1691 閱讀 2062

執行緒:

1.pthread_create

作用:建立乙個執行緒

原型:int pthread_create(pthread_t *thread, pthread_attr_t *attr,

(void *)(start_routine)(void *), (void *arg))

引數:thread:執行緒識別符號

attr: 執行緒屬性

start_routine: 執行緒的執行函式

arg: 傳入到執行緒執行函式的引數

返回值:成功:0

出錯:< 0

標頭檔案:#include

2.pthread_exit

作用:退出

原型:void pthread_exit(void *reval);

3.pthread_join

作用:等待執行緒退出

原型:int pthread_join(pthread_t th, void **thread_return);

引數: th:執行緒識別符號

thread_return: 不為null,儲存執行緒結束時的返回值

返回值:成功:0

出錯:< 0

4.pthread_mutex_init

作用:初始化互斥鎖

原型:int pthread_mutex(pthread_mutex_t *restrict mutex,

const pthread_mutex_attr_t *mutexattr)

引數:mutex:互斥鎖

mutexattr:pthread_mutex_inittializer快速互斥鎖

返回值:成功:0

出錯:< 0

6.pthread_mutex_lock

作用:對互斥鎖上鎖

原型:int pthread_mutex_lock(pthread_mutex_t * mutex);

返回值:成功:0

出錯:-1

7. 互斥上鎖相關函式

原型:int pthread_mutex_unlock(pthread_t *mutex); //解鎖

原型:int pthread_mutex_trylock(pthread_t *mutex); //判斷上鎖

原型:int pthread_mutex_destorylock(pthread_t *mutex); //破壞鎖

執行緒訊號量:

1.sem_init

作用:建立並初始化訊號量

原型:int sem_init(sem_t *sem, int pshared, unsigned int value);

引數:sem:訊號量

pshared: 0

value: 訊號量的初始值

返回值:成功:0

出錯:-1

標頭檔案:#include

2.pv操作,銷毀訊號量等

原型:int sem_wait(sem_t *sem);-----p操作

int sem_trywait(sem_t *sem)

int sem_post(sem_t *sem);-----v操作

int sem_getvalue(sem_t *sem);-----得到訊號量

int sem_destory(sem_t *sem);-----銷毀

引數:sem:訊號量指標

返回值:成功:0

出錯:-1

執行緒 訊號量

訊號量 訊號量本質上是乙個非負的整數計數器,它被用來控制對公共資源的訪問。當公共資源增加時,呼叫函式sem post 增加訊號量。只有當訊號量值大於 時,才能使用公共資源,使用後,函式sem wait 減少訊號量。函式sem trywait 和函式pthread mutex trylock 起同樣的...

執行緒與訊號量

訊號量的資料型別為結構sem t,它本質上是乙個長整型的數。函式sem init 用來初始化乙個訊號量。它的原型為 extern int sem init p sem t sem,int pshared,unsigned int value sem為指向訊號量結構的乙個指標 pshared不為 時此...

執行緒訊號量同步

thread sem.c include include include include define thread number 3 define repeat number 3 define delay time levels 10.0 sem t sem thread number void ...