執行緒中的條件變數
阿新 • • 發佈:2021-01-12
目錄
-靜態初始化
執行緒中的條件變數
建立並初始化
#include <pthread.h>
int pthread_cond_init(pthread_cond_t *restrict cond,
const pthread_condattr_t *restrict attr);
pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
功能:
- 建立初始化條件變數
pthread_cond_init
-動態初始化
PTHREAD_COND_INITIALIZER
入口:
cond
-帶初始化條件的地址attr
-帶初始化條件的屬性
出口:
- 0-正常
- 錯誤碼-非正常
休眠等待
#include <pthread.h>
int pthread_cond_wait(pthread_cond_t *restrict cond,
pthread_mutex_t *restrict mutex);
功能:
- 條件不滿足休眠-釋放互斥鎖
- 喚醒->檢測條件(手動檢測)->阻塞拿鎖
or
休眠
入口:
cond
-條件變數mutex
-互斥鎖
出口:
- 0-正常
- 錯誤碼-非正常
通知喚醒
#include <pthread.h>
int pthread_cond_signal(pthread_cond_t *cond);
功能:
- 喚醒一個條件變數下的執行緒
- 多個變數(
int pthread_cond_broadcast(pthread_cond_t *cond);
)
入口:
cond
-條件變數
出口:
- 0-正常
- 錯誤碼-非正常
銷燬
#include <pthread.h> int pthread_cond_destroy(pthread_cond_t *cond);
功能:
- 銷燬條件變數
入口:
cond
-條件變數
出口:
- 0-正常
- 錯誤碼-非正常