现在的位置: 首页 > 综合 > 正文

各种Mutex(互斥量)的区别

2013年06月20日 ⁄ 综合 ⁄ 共 608字 ⁄ 字号 评论关闭
原文:

http://blog.csdn.net/onlyou930/article/details/6432206

各种Mutex的区别如下表:

锁类型

初始化方式

加解锁特征

调度特征

普通锁

PTHREAD_MUTEX_INITIALIZER

同一线程可重复加锁,解锁一次释放锁

先等待锁的进程先获得锁

嵌套锁

PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP

同一线程可重复加锁,解锁同样次数才可释放锁

先等待锁的进程先获得锁

纠错锁

PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP

同一线程不能重复加锁,加上的锁只能由本线程解锁

先等待锁的进程先获得锁

自适应锁

PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP

同一线程可重加锁,解锁一次生效

所有等待锁的线程自由竞争

windows支持的锁
PTHREAD_MUTEX_RECURSIVE_NP 即嵌套锁
linux支持的锁
PTHREAD_MUTEX_FAST_NP 即 普通锁
PTHREAD_MUTEX_RECURSIVE_NP 即嵌套锁
PTHREAD_MUTEX_ERRORCHECK_NP 即纠错锁
OS_APPLE || OS_S60 || OS_ANDROID支持的锁
PTHREAD_MUTEX_NORMAL 即普通锁
PTHREAD_MUTEX_RECURSIVE 即嵌套锁
PTHREAD_MUTEX_ERRORCHECK 即纠错锁

抱歉!评论已关闭.