文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>pthread_cleanup_push and pthread_cleanup_pop

pthread_cleanup_push and pthread_cleanup_pop

时间:2010-08-25  来源:harryxiyou

#include<stdio.h> #include<pthread.h>
void clean_up(void*  arg) {         printf("\nin clean_up function\n");         printf("arg=%s\n",(char*)arg);         return; }
void * pthread1(void *arg) {         printf("pthread begin\n");         pthread_cleanup_push(clean_up,"first first first");         pthread_cleanup_push(clean_up,"second second second");                      pthread_cleanup_pop(1);         pthread_cleanup_pop(0);         printf("in the end pthread1\n");         pthread_exit((void *)200); }              int main(void) {         int err;         pthread_t tid1;         void * ret;                      err=pthread_create(&tid1,NULL,pthread1,NULL);         if(err!=0){         printf("pthread_create error\n");         return -1;          }                         err=pthread_join(tid1,&ret);         if(err!=0){         printf("pthread_joid error\n");         return -1;          }                         printf("pthread_join return is %d\n",(int)ret);                      return 0; } ++++++++++++++++++++++++++++++++++++ fan@fan:~/arm$ gcc -o app pthread_pop.c -lpthread fan@fan:~/arm$ ./app pthread begin
in clean_up function arg=second second second in the end pthread1   //其实还是在没有退出子线程的时候调用函数的。 pthread_join return is 200 fan@fan:~/arm$  +++++++++++++++++++++++++++
pop和push的参数都设置为1的情况
fan@fan:~/arm$ gcc -o app pthread_pop.c -lpthread
fan@fan:~/arm$ ./app
pthread begin

in clean_up function
arg=second second second

in clean_up function
arg=first first first
in the end pthread1
pthread_join return is 200
排行榜 更多 +
太空飞船终极攻击

太空飞船终极攻击

飞行射击 下载
化作星辰

化作星辰

飞行射击 下载
枪战火柴人中文版

枪战火柴人中文版

飞行射击 下载