pthread_mutex_destroy()用于注销一个互斥锁。销毁一个互斥锁即意味着释放它所占用的资源,且要求锁当前处于开放状态。
 
#include <stdlib.h>
#include <pthread.h>
int main(void)
{
        pthread_mutex_t mutex;

        pthread_t tid2;

        pthread_mutex_init(&mutex,NULL);

        pthread_mutex_destroy(&mutex);

        if(pthread_mutex_lock(&mutex)!=0)perror();

        return 0;

}
看看这段代码,为什么destroy之后调用lock不出错呢?
 
pthread_mutex_destroy()用于注销一个互斥锁,API定义如下: int pthread_mutex_destroy(pthread_mutex_t *mutex) 销毁一个互斥锁即意味着释放它所占用的资源,且要求锁当前处于开放状态。由于在Linux中,互斥锁并不占用任何资源,因此LinuxThreads中的pthread_mutex_destroy()除了检查锁状态以外(锁定状态则返回EBUSY)没有其他动作。

所以上述程序不会出错