[技術] Linux多執行緒結束控制程式
Written on 8:20 下午 by Yu Lai
From: http://blog.csdn.net/lcrystal623/archive/2007/03/05/1521170.aspx
pthread_cleanup_push和pthread_cleanup_pop是一對的。push中第一個參數是函數,第二個參數是函數的參數,pop為0表示彈出時不執行,否則再執行到pop時會執行push中指定的函數。在他們之間的程序段如果退出則執行push中指定的函數。
代碼如下:
#include <stdio.h>If you enjoyed this post Subscribe to our feed
#include <pthread.h>
void display()
{
printf("Hello lcrystal!\n");
}
void fun()
{
pthread_cleanup_push((void *)display,NULL);
pthread_exit(0);
pthread_cleanup_pop(0);
}
int main()
{
pthread_t id;
pthread_create(&id,NULL,(void *)fun,NULL);
pthread_join(id,NULL);
return 0;
}