pthread_mutex_lock usage
来源:互联网 发布:it s high noon 编辑:程序博客网 时间:2024/06/10 02:46
如果一个线程内部lock 需要嵌套的话,开发者也搞不清哪些函数使用mutex lock, 就在还是得开始和结束加入mutex_lock and mutex_unlock, 前提是要把type 设置成 PTHREAD_MUTEX_RECURSIVE.
当pthread_mutex_lock()返回时,该互斥锁已被锁定。线程调用该函数让互斥锁上锁,如果该互斥锁已被另一个线程锁定和拥有,则调用该线程将阻塞,直到该互斥锁变为可用为止。 对于 Solaris线程,请参见mutex_lock 语法。
如果互斥锁类型为 PTHREAD_MUTEX_NORMAL,则不提供死锁检测。尝试重新锁定互斥锁会导致死锁。如果某个线程尝试解除锁定的互斥锁不是由该线程锁定或未锁定,则将产生不确定的行为。
如果互斥锁类型为 PTHREAD_MUTEX_ERRORCHECK,则会提供错误检查。如果某个线程尝试重新锁定的互斥锁已经由该线程锁定,则将返回错误。如果某个线程尝试解除锁定的互斥锁不是由该线程锁定或者未锁定,则将返回错误。
如果互斥锁类型为 PTHREAD_MUTEX_RECURSIVE,则该互斥锁会保留锁定计数这一概念。线程首次成功获取互斥锁时,锁定计数会设置为 1。线程每重新锁定该互斥锁一次,锁定计数就增加 1。线程每解除锁定该互斥锁一次,锁定计数就减小 1。 锁定计数达到 0 时,该互斥锁即可供其他线程获取。如果某个线程尝试解除锁定的互斥锁不是由该线程锁定或者未锁定,则将返回错误。
如果互斥锁类型是 PTHREAD_MUTEX_DEFAULT,则尝试以递归方式锁定该互斥锁将产生不确定的行为。对于不是由调用线程锁定的互斥锁,如果尝试解除对它的锁定,则会产生不确定的行为。如果尝试解除锁定尚未锁定的互斥锁,则会产生不确定的行为。
0 0
- pthread_mutex_lock usage
- pthread_mutex_lock
- pthread_mutex_lock
- pthread_mutex_lock
- pthread_mutex_lock
- pthread_mutex_lock
- pthread_mutex_lock
- pthread_mutex_lock
- pthread2 pthread_mutex_lock
- pthread_mutex_lock用法
- pthread_mutex_lock 函数
- pthread_mutex_lock 用法
- pthread_mutex_lock实现
- __sync_fetch_and_add,pthread_mutex_lock
- usage
- pthread_cond_wait pthread_cond_broadcast pthread_mutex_lock
- pthread_mutex_lock的实现!!
- pthread_mutex_lock引起的core
- Nodejs express中创建ejs项目,解决express下默认创建jade,无法创建ejs问题
- 内核request_mem_region 和 ioremap的理解
- Javascript的简单用法
- 排序算法
- oracle 多表关联更新语句
- pthread_mutex_lock usage
- HDU 1869 (最短路)
- Bootmgr Part1 - SakiProject
- ubuntu 12.04 利用openswan实现ipsec vpn(lan-to-lan和host-to-lan)
- 【创业说】零经验接手APP运营推广,聊聊这两个月我是怎么熬过来的
- SAP BASIS顾问
- BLENDFUNCTION结构体
- 数据库分库分表
- String解析