- 论坛徽章:
- 0
|
osdba 发表于 2012-03-17 22:31 ![]()
pthread_muext_trylock(&t)让你在没有获得锁的时候,还有机会退出,而pthread_mutex_lock(&t)会一直等下去。 ...
说实话 您的解释我能理解 应该也使那样的 我很同意 可惜
如下代码 ctrl+c 程序可以正常退出 并没有未响应 在freebsd8.2 ubuntu下试验过
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
pthread_mutex_t t;
void func(int arg)
{
printf("Get SIGINT\n");
exit(0);
}
void *thr_fn(void *args)
{
printf("B\n");
pthread_mutex_lock(&t);
return (void*)0;
}
int main()
{
pthread_t pt;
pthread_mutex_init(&t,NULL);
signal(SIGINT,&func);
pthread_create(&pt,NULL,thr_fn,NULL);
usleep(1000);
pthread_mutex_lock(&t);
printf("A\n");
pthread_mutex_unlock(&t);
return 0;
} |
|