查看文章
 
线程退出pthread_exit(NULL)和return的区别?
2009-06-11 19:53
return和pthread_exit(NULL)的区别:
“理论上说,pthread_exit()和线程宿体函数退出的功能是相同的,函数结束时会在内部自动调用pthread_exit()来清理线程相关的资源。但实际上二者由于编译器的处理有很大的不同。
在进程主函数(main())中调用pthread_exit(),只会使主函数所在的线程(可以说是进程的主线程)退出;而如果是return,编译器将使其调用进程退出的代码(如_exit()),从而导致进程及其所有线程结束运行。”

所以呢,在宿体函数内是没有区别的(理论上);但是在宿主函数内,return将结束进程

pthread_exit()用于线程退出,可以指定返回值,以便其他线程通过pthread_join()函数获取该线程的返回值


return,是函数返回,不一定是线程函数哦! 只有线程函数return,线程才会退出


exit()是进程退出,如果在线程函数中调用exit,那改线程的进程也就挂了,会导致该线程所在进程的其他线程也挂掉,比较严重


类别:默认分类||添加到搜藏 |分享到i贴吧|浏览(908)|评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
     

   
帮助中心 | 空间客服 | 投诉中心 | 空间协议
©2012 Baidu