#include <stdio.h>
#include <pthread.h>
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
void *f(void *args)
{
pthread_mutex_lock(&mutex);
printf("lock in f without unlock!\n");
return NULL;
}
int main()
{
pthread_t tid;
pthread_create(&tid, NULL, f, NULL);
sleep(1);
pthread_mutex_lock(&mutex);
printf("lock in main\n");
pthread_mutex_unlock(&mutex);
return 0;
}
如上所示程序,线程退出前未释放锁,执行后程序结果为:
说明线程的退出不会导致锁的释放!!!