pthread_t[结贴]用pthread_create创建的pthread_t,需要显示的销毁么?

pthread_t  时间:2021-06-13  阅读:()

如何使用pthread

怎样知道一个pthread 如果需要只终止某个线程而不终止整个进程,可以有三种方法: 1.从线程函数return。

这种方法对主线程不适用,从main函数return相当于调用exit。

2.一个线程可以调用pthread_cancel终止同一进程中的另一个线程。

3.线程可以调用pthread_exit终止自己。

线程函数中,假如没有用pthread_exit会怎样?

首先必须搞清楚pthread_exit是linux线程库POSIX底下的一个结束线程(自身)的函数,在多线程环境中,pthread_exit只会清理本线程的资源,不会影响其他并行的线程,而exit(0),return(0)则不同,具体可见下程序,linux下编译: #include <stdio.h> #include <pthread.h> #include <stdlib.h> void thread(void) { int i; for(i=0;i<3;i++) printf("This is a pthread. "); pthread_exit(0); //可以不要,会自动调用 } int main(void) { pthread_t id; int i,ret; ret=pthread_create(&id,NULL,(void *) thread,NULL); if(ret!=0){ printf ("Create pthread error! "); exit (1); } for(i=0;i<3;i++) printf("This is the main process. "); pthread_join(id,NULL);//阻塞主线程,等待id线程结束。

return (0); //结束本进程内所有线程 }

怎么把pthread_mutex_t设为递归锁?

在初使化mutex时设置: pthread_mutexattr_t attr; pthread_mutexattr_init(&attr); pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE); pthread_mutex_init(&mutex,&attr);

[结贴]用pthread_create创建的pthread_t,需要显示的销毁么?

谢谢,按照你说的,做了修改。

新的代码如下:#include #include #include #include #include using namespace std;void exe_exit1(void *arg){ printf("%s:arg=%s ",__FUNCTION__,(char *)arg);}void exe_exit2(void *arg){ printf("%s:arg=%s ",__FUNCTION__,(char *)arg);}void *func(void*){ printf("thread start "); pthread_cleanup_push(exe_exit2,static_cast(const_cast("For exe_exit1"))); pthread_cleanup_push(exe_exit1,static_cast(const_cast("For exe_exit2"))); printf("pthread_cleanup_push ok "); printf("pthread_cleanup_pop begin "); pthread_cleanup_pop(1); pthread_cleanup_pop(1); return NULL;}int main(){ pthread_t tid; pthread_attr_t attr; pthread_attr_init(&attr); pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); pthread_create(&tid,&attr,func,NULL); pthread_attr_destroy(&attr); sleep(1); exit(0);}运行结果如我所预期的那样。

RackNerd($199/月),5IP,1x256G SSD+2x3THDD

我们先普及一下常识吧,每年9月的第一个星期一是美国劳工节。于是,有一些服务商会基于这些节日推出吸引用户的促销活动,比如RackNerd有推出四款洛杉矶和犹他州独立服务器,1G带宽、5个独立IP地址,可以配置Windows和Linux系统,如果有需要独立服务器的可以看看。第一、劳工节促销套餐这里有提供2个套餐。两个方案是选择犹他州的,有2个方案是可以选择洛杉矶机房的。CPU内存SSD硬盘配置流量价格...

HostHatch(15美元)大硬盘VPS,香港NVMe,美国、英国、荷兰、印度、挪威、澳大利亚

HostHatch在当地时间7月30日发布了一系列的促销套餐,涉及亚洲和欧美的多个地区机房,最低年付15美元起,一次买2年还能免费升级双倍资源。商家成立于2011年,提供基于KVM架构的VPS主机,数据中心包括中国香港、美国、英国、荷兰、印度、挪威、澳大利亚等国家的十几个地区机房。官方网站:https://hosthatch.com/NVMe VPS(香港/悉尼)1 CPU core (12.5%...

百纵科技(1399元/月)香港CN2站群232IP

湖南百纵科技有限公司是一家具有ISP ICP 电信增值许可证的正规公司,多年不断转型探索现已颇具规模,公司成立于2009年 通过多年经营积累目前已独具一格,公司主要经营有国内高防服务器,香港服务器,美国服务器,站群服务器,东南亚服务器租用,国内香港美国云服务器,以及全球专线业务!活动方案:主营:1、美国CN2云服务器,美国VPS,美国高防云主机,美国独立服务器,美国站群服务器,美国母机。2、香港C...

pthread_t为你推荐
qq代挂代挂qq之后自己就上不去了决策树分析如何用SPSS生成决策树并对新数据进行预测分析iso20000认证为什么ISO20000认证能够风靡全球?它对整个企业的发展有什么好处?awvawv格式是否等于MP4格式数据统计分析表EXCEL怎么制作百分比数据分析表图什么是生态系统什么是生态环境?单元测试规范求解,单片机程序的单元测试应该怎么做呢?超级播放器推荐个好的视频播放器移动硬盘文件或目录损坏且无法读取急:移动硬盘无法访问,打开提示”文件或目录损坏且无法读取”收费视频怎么制作收费视频
域名备案批量查询 三级域名网站 台湾服务器 秒解服务器 美国仿牌空间 好看的桌面背景大图 青果网 免费美国空间 绍兴电信 双12 腾讯总部在哪 西安主机 wordpress中文主题 美国迈阿密 杭州电信 腾讯服务器 winds htaccess 遨游论坛 crontab 更多