您的位置:首页 > 其它

关于pause函数时挂起进程还是挂起线程的验证

2016-04-03 10:59 218 查看
#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <signal.h>

#include <pthread.h>

void * timer(void *)

{

for(int i = 0; i< 200; i++)

printf("my name is chen yi cong \n");

return NULL;

}

void *testp(void *)

{

int ret = alarm(2);

pause();

return NULL;

}

int main()

{

//int ret = alarm(5) ;//设置一个定时器

//signal(SIGALRM, timer);

//pause();

pthread_t t1, t2;

printf("begin to test\n") ;

pthread_create(&t1, NULL, &testp, NULL);

pthread_create(&t2, NULL, &timer, NULL);

pthread_join(t1, NULL);

pthread_join(t2, NULL);

return 0;

}

输出如下:



从上面文件的输出可以看出,pause只是挂起所在的线程,然而当SIGALRM信号到达的时候,pause函数会将整个进程终止掉。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: