原文: 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 即纠错锁