打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
多线程pthread编程
知识点一
1、pthread_create
   pthread_join
   pthread_exit
   pthread_cancel

二、线程资源的释放  
1、线程占用的系统资源的释放
pthread_create创建的线程有两种状态:
1)、“joinable state”(它的值为PTHREAD_CREATE_JOINABLE)。pthread_create创建线程时默认即为“joinable state”。
   这种线程意味着,应该在另一个线程中通过pthread_join 连接到本线程,在本线程结束之后,pthread_join才会返回,才会释放资源。如果没有使用pthread_join连接,则在线程结束时会导致线程资源泄露。
2)、“detached  state”(值为PTHREAD_CREATE_DETACHED)。
    这种线程在线程结束时,可以自动释放资源。其创建过程如下:
   pthread_t t;
   pthread_attr_t attr; //这里设置为“detached  state”
   pthread_attr_init(&attr);
   pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
   if (pthread_create(&t,&attr, threadProc, NULL))
   {
       perror("create");
   }
  
    注意,上面提到的资源释放,是指系统为线程分配的资源。

2、非正常退出时线程资源的处理
   在线程中由用户自己分配的资源,也应该由用户自己来释放。但是,有时候,线程是非正常结束,可能没有运行到资源释放部分就中止运行了。这时候资源的释放,需要用到下面的知识点:
1)、pthread_cleanup_push、pthread_cleanup_pop
参见:http://www.360doc.com/showWeb/0/0/67710386.aspx


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Linux多线程,线程的分离与结合
pthread_join pthread_detach 细节问题
linux创建线程内存回收
线程属性pthread
pthread 简要使用指南(五) 线程属性(pthread
Linux程序设计中由线程使用不当引起的内存泄漏
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服