【发布时间】:2012-01-11 16:38:03
【问题描述】:
根据开放组基本规范第 7 期,IEEE Std 1003.1-2008,
单个条件变量 (pthread_cond_t) 不应与 pthread_cond_wait() 中的不同互斥体 (pthread_mutex_t) 一起使用,而至少有一个线程正在等待此条件变量:例如。 pthread_cond_wait(&cond1, &mutex1) 不能与 pthread_cond_wait(&cond1, &mutex2) 并行使用:此行为未指定。
但未指定是否允许使用具有多个条件变量的单个互斥锁,例如:pthread_cond_wait(&cond1, &mutex1) 与 pthread_cond_wait(&cond2, &mutex1) 并行。
我认为应该避免这种结构以保证安全(两种方式)
在互斥体和条件变量之间形成动态绑定 [...]
有人可以评论这个问题吗?
【问题讨论】:
标签: unix pthreads posix mutex conditional-statements