1. 互斥锁、递归锁
LinuxThreads只支持一种互斥体属性:互斥体的类型,fast类型的互斥体值为PTHREAD_MUTEX_FAST_NP,recursive类型的互斥体值为PTHREAD_MUTEX_RECURSIVE_NP,error checking类型的互斥体值为PTHREAD_MUTEX_ERRORCHECK_NP。就像NP后缀暗示的那样,这是POSIX标准的不可移植的扩展,不应该出现在将要进行移植的程序中。
互斥体的类型决定当线程要锁定一个已经被它自己锁定的互斥体时会发生什么。fast类型只是简单的永远将这个线程挂起。error checking类型的互斥体会立即返回一个错误码EDEADLK。否则的话,返回立即成功返回。在互斥体中会记录这个线程对互斥体进行了多少次锁定,想要真正释放这个互斥体也就必须调用相同次数的pthread_mutex_unlock。
它的默认值是fast类型,值为PTHREAD_MUTEX_FAST_NP。
2.