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);}运行结果如我所预期的那样。

牦牛云(3.5USD/月 )阿里云国际版云服务器 1核1G40G

收到好多消息,让我聊一下阿里云国际版本,作为一个阿里云死忠粉,之前用的服务器都是阿里云国内版的VPS主机,对于现在火热的阿里云国际版,这段时间了解了下,觉得还是有很多部分可以聊的,毕竟,实名制的服务器规则导致国际版无需实名这一特点被无限放大。以前也写过几篇综合性的阿里云国际版vps的分析,其中有一点得到很多人的认同,那句是阿里云不管国内版还是国际版的IO读写速度实在不敢恭维,相对意义上的,如果在这...

Megalayer(月599元)限时8月香港和美国大带宽服务器

第一、香港服务器机房这里我们可以看到有提供四个大带宽方案,是全向带宽和国际带宽,前者适合除了中国大陆地区的全网地区用户可以用,后者国际带宽适合欧美地区业务。如果我们是需要大陆地区速度CN2优化的,那就需要选择常规的优化带宽方案,参考这里。CPU内存硬盘带宽流量价格选择E3-12308GB240GB SSD50M全向带宽不限999元/月方案选择E3-12308GB240GB SSD100M国际带宽不...

wordpress高级跨屏企业主题 wordpress绿色企业自适应主题

wordpress高级跨屏企业主题,通用响应式跨平台站点开发,自适应PC端+各移动端屏幕设备,高级可视化自定义设置模块+高效的企业站搜索优化。wordpress绿色企业自适应主题采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera等;同时支持移动终端的常用浏览器应...

pthread_t为你推荐
刘建平现在赫章县委书记是谁tdeICMP工具程序ping和他racertde 功能和用法企业资源管理系统企业内部管理系统有哪些腾讯公告官网公告是什么搜索引擎的概念什么是搜索引擎?搜索引擎是如何工作的?assemblyinfoLOL的 X、L、CS 是什么意思审计平台什么是审计工具微信智能机器人有没有可以拉进微信群的聊天机器人数据库界面数据库怎么进入界面点心os现有的基于安卓深度优化的MUUI、点心OS、CM7、乐众ROM、乐蛙,这些哪个好?各自特点?给个排名。
怎样注册域名 到期域名查询 企业主机 namecheap 美国主机网 2014年感恩节 香港托管 新世界电讯 2017年万圣节 有益网络 91vps 华为云盘 申请网站 重庆电信服务器托管 石家庄服务器托管 镇江高防 阿里云邮箱登陆 杭州电信宽带 美国代理服务器 apachetomcat 更多