執行緒:
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 ...