suowenair 于 2010-04-10 15:59:51发表:
4# 0XFFFFH 谢谢你!我就是要这样的例子! 我把pthread_detach() 放在了pthread_create()创建的处理函数(新线程)里面里面了!我就是不明白为什么pthread_join()函数没有出错! 呵呵! 我看看这个程序!谢谢!
0XFFFFH 于 2010-04-08 18:55:44发表:
分离一个已经创建的线程 #include #include #include /*线程体函数*/ void* tfn(void* arg) { printf("the thread\n"); sleep(3);/*等待主线程将该线程设置为分离状态*/ printf("the thread done\n"); return NULL ; } int main() { int err ; pthread_t tid ; /*创建一个线程*/ err = pthread_create(&tid,NULL,tfn,NULL); if(err != 0) { printf("can't create the thread %s \n",strerror(err)); exit(1); } /*将线程属性设置为线程和结束状态信息分离*/ err = pthread_detach(tid); if(err != 0) { printf("can't detach thread %s\n",strerror(err)); exit(1); } /*由于状态分离,所以不能得到线程的结束状态信息,pthread_join函数将出错*/ err = pthread_join(tid,NULL); if(err != 0) printf("thread has been detached\n"); sleep(4);/*确保线程执行完毕*/ printf("the main thread done\n"); return 0 ; }
凌烟 于 2010-04-07 23:24:46发表:
定了
凌烟 于 2010-04-07 23:24:01发表:
赞一个
suowenair 于 2010-04-10 15:59:51发表:
4# 0XFFFFH
谢谢你!我就是要这样的例子!
我把pthread_detach() 放在了pthread_create()创建的处理函数(新线程)里面里面了!我就是不明白为什么pthread_join()函数没有出错!
呵呵!
我看看这个程序!谢谢!
0XFFFFH 于 2010-04-08 18:55:44发表:
分离一个已经创建的线程
#include
#include
#include
/*线程体函数*/
void* tfn(void* arg)
{
printf("the thread\n");
sleep(3);/*等待主线程将该线程设置为分离状态*/
printf("the thread done\n");
return NULL ;
}
int main()
{
int err ;
pthread_t tid ;
/*创建一个线程*/
err = pthread_create(&tid,NULL,tfn,NULL);
if(err != 0)
{
printf("can't create the thread %s \n",strerror(err));
exit(1);
}
/*将线程属性设置为线程和结束状态信息分离*/
err = pthread_detach(tid);
if(err != 0)
{
printf("can't detach thread %s\n",strerror(err));
exit(1);
}
/*由于状态分离,所以不能得到线程的结束状态信息,pthread_join函数将出错*/
err = pthread_join(tid,NULL);
if(err != 0)
printf("thread has been detached\n");
sleep(4);/*确保线程执行完毕*/
printf("the main thread done\n");
return 0 ;
}
凌烟 于 2010-04-07 23:24:46发表:
定了
凌烟 于 2010-04-07 23:24:01发表:
赞一个