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()
。。。。。。