各种Mutex(互斥量)的区别

来源:互联网 发布:java正则表达式用法 编辑:程序博客网 时间:2024/05/16 19:18

各种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  即纠错锁

原创粉丝点击