转载: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只支持嵌套锁
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 即纠错锁