当前位置: 技术问答>linux和unix
关于pthead_cleanup_push
来源: 互联网 发布时间:2016-11-30
本文导语: #include #include #include void clean1(void *arg) { printf("clean1 n"); } void clean2(void *arg) { printf("clean 2 n"); } void * f1(void *arg) { printf("thread 1 startingn"); pthread_cleanup_push(clean1,NULL); pthread_cleanup_push(clean2,NULL)...
#include
#include
#include
void clean1(void *arg)
{
printf("clean1 n");
}
void clean2(void *arg)
{
printf("clean 2 n");
}
void * f1(void *arg)
{
printf("thread 1 startingn");
pthread_cleanup_push(clean1,NULL);
pthread_cleanup_push(clean2,NULL);
pthread_cleanup_pop(0);
pthread_cleanup_pop(0);
printf("after popn");
pthread_exit((void *)2);
}
int main()
{
pthread_t t1,t2;
void * pret;
pthread_create(&t1,NULL,f1,NULL);
pthread_join(t1,&pret);
printf("pret:%dn",pret);
//exit(0);
}
为什么我的线程退出的时候,没有调用clean1和clean2两个函数?
输出是:
thread 1 starting
after pop
pret:2
#include
#include
void clean1(void *arg)
{
printf("clean1 n");
}
void clean2(void *arg)
{
printf("clean 2 n");
}
void * f1(void *arg)
{
printf("thread 1 startingn");
pthread_cleanup_push(clean1,NULL);
pthread_cleanup_push(clean2,NULL);
pthread_cleanup_pop(0);
pthread_cleanup_pop(0);
printf("after popn");
pthread_exit((void *)2);
}
int main()
{
pthread_t t1,t2;
void * pret;
pthread_create(&t1,NULL,f1,NULL);
pthread_join(t1,&pret);
printf("pret:%dn",pret);
//exit(0);
}
为什么我的线程退出的时候,没有调用clean1和clean2两个函数?
输出是:
thread 1 starting
after pop
pret:2
|
pthread_cleanup_pop(1)
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。