互斥锁:
- PTHREAD_MUTEX_TIMED_NP:这是缺省值,也就是普通锁。当一个线程加锁以后,其余请求锁的线程会形成一个等待队列,并且在解锁后按照优先级获取到锁。这种策略可以保证资源分配的公平性。
- PTHREAD_MUTEX_RECURSIVE_NP 嵌套锁。允许一个线程对同一个锁成功获取多次,并通过unLock解锁。如果是不同线程的请求,则在加锁线程解锁时重新进性竞争。
- PTHREAD_MUTEX_ERRORCHECK_NP:检错锁。如果一个线程请求同一个锁,则返回EDEADLK,否则PTHREAD_MUTEX_TIMED_NP类型相同,这样就保证了当不允许多次加锁是时不会出现最简单的死锁。
- PTHREAD_MUTEX_ADAPTIVE_NP适应锁,动作最简单的锁类型,仅仅等待解锁后重新竞争。