edA*_*a-y 3 c++ multithreading boost
可以在boost :: condition_variable上"等待"而不必先获取互斥锁吗?如果失败了,可以直接使用pthread lib以某种方式完成吗?
为简单起见,我想避免直接进入操作系统层(例如linux上的futex).但我也不想要互斥锁调用的开销.
在正常情况下,我非常清楚这种情况.我有另一种方式.
在这两种情况下都必须首先获取互斥锁.
来自boost.threads文档:
void wait(boost :: unique_lock&lock)
前提条件:锁定被当前线程锁定 [...]
从pthread_cond_wait手册页:
的调用pthread_cond_wait()和那么pthread_cond_timedwait()函数用于在条件变量阻塞. 它们是由调用线程锁定的互斥锁调用的,否则将导致未定义的行为.
我不知道任何其他选择.
| 归档时间: |
|
| 查看次数: |
2219 次 |
| 最近记录: |