pthread_cond_wait()使用注意点
来源:互联网 发布:淘宝分销刷销量 编辑:程序博客网 时间:2024/05/16 00:21
http://www.cnblogs.com/diyingyun/archive/2011/11/25/2263164.html
The mutex passed to pthread_cond_wait protects the condition.The caller passes it locked to the function, which then atomically places them calling thread on the list of threads waiting for the condition and unlocks the mutex. This closes the window between the time that the condition is checked and the time that the thread goes to sleep waiting for the condition to change, so that the thread doesn't miss a change in the condition. When pthread_cond_wait returns, the mutex is again locked.
上面是APUE的原话,就是说pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)函数传入的参数mutex用于保护条件,因为我们在调用pthread_cond_wait时,如果条件不成立我们就进入阻塞,但是进入阻塞这个期间,如果条件变量改变了的话,那我们就漏掉了这个条件。因为这个线程还没有放到等待队列上,所以调用pthread_cond_wait前要先锁互斥量,即调用pthread_mutex_lock(),pthread_cond_wait在把线程放进阻塞队列后,自动对mutex进行解锁,使得其它线程可以获得加锁的权利。这样其它线程才能对临界资源进行访问并在适当的时候唤醒这个阻塞的进程。当pthread_cond_wait返回的时候又自动给mutex加锁。
0 0
- pthread_cond_wait()使用注意点
- pthread_cond_wait/pthread_cond_timedwait使用注意
- pthread_cond_wait() 使用
- pthread_cond_wait使用
- DataReader使用注意点
- JSF使用注意点
- JSF使用注意点
- AJAX使用注意点
- memcpy使用注意点
- tomcat使用注意点
- scanf使用注意点
- MappedByteBuffer使用注意点
- ice 注意使用点
- jade使用注意点
- seajs使用注意点
- canvas使用注意点
- nuc710使用注意点
- 使用LayoutInflater注意点
- 求两点间所有路径的遍历算法
- ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句
- 11.8移动弹出层到指定位置
- 网游服务器数据访问架构模式
- Java中的JNI调用
- pthread_cond_wait()使用注意点
- JDK中设计模式
- NGUI插件四 创建动态字体集
- android录像预览功能
- 现实版本《合伙人》
- Android平台Gallery2应用分析(五)---AlbumPage和DataManager
- TopCoder kawigiEdit插件配置
- Head first 设计模式 整理
- PHP 导出 excel