POSIX 之條件變量(Condition Variable)、條件變量屬性(Condition Variable Attributes )
0 引言
條件變量是利用線程間共享的全局變量進行同步的一種機制,主要包括兩個動作:一個線程等待"條件變量的條件成立"而掛起;另一個線程使"條件成立"(給出條件成立信號)。爲了防止競爭,條件變量的使用總是和一個互斥鎖結合在一起。本博文將詳細介紹posix condition variable的使用,本文主要內容:
- Condition Variable Synchronization APIs
- Condition Variable Attributes
1 Condition Variable
1.1 Condition Variable Manage APIs List Table
Condition Variable 主要的操作如下表:
函數 | 描述 | Linux | VxWorks | 備註 |
---|---|---|---|---|
pthread_cond_init() | Initialize a Condition Variable | support | support | |
pthread_cond_destroy() | Destroy a Condition Variable | support | support | |
pthread_cond_signal() | Signal Condition to One Waiter | support | support | |
pthread_cond_broadcast() | Broadcast Condition to All Waiters | support | support | |
pthread_cond_wait() | Wait for a Condition | support | support | |
pthread_cond_timedwait() | Timed Wait for a Condition | support | support | |
pthread_get_expiration_np() | Get Condition Expiration Time from Delta | support | support |
1.2 APIs詳解
1.2.1 pthread_cond_init和pthread_cond_destroy
。。。。。。詳解介紹各個api的具體用法 以及在Linux和VxWorks下的不同
2 Condition Variable Attributes
2.1 Condition Variable Attributes APIs List Table
函數 | 描述 | Linux | VxWorks | 備註 |
---|---|---|---|---|
pthread_condattr_init() | Initialize Condition Variable Attributes Object | support | support | |
pthread_condattr_destroy() | Destroy Condition Variable Attributes Object | support | support | |
pthread_condattr_getpshared() | Get Process Shared Attribute from Condition Attributes Object | support | support | |
pthread_condattr_setpshared() | Set Process Shared Attribute in Condition Attributes Object | support | support | |
pthread_condattr_getclock() | get the clock selection condition variable attribute (ADVANCED REALTIME) | support | support | |
pthread_condattr_setclock() | set the clock selection condition variable attribute (ADVANCED REALTIME) | support | support |
2.2 APIs詳解
2.2.1 pthread_condattr_init() pthread_condattr_destroy()
。。。。。。