当前位置: 首页 > ds >正文

线程分离属性

#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <sys/types.h>
#include <unistd.h>static void* thread_fun(void*arg)
{//pid_t pid;//  pthread_detach(pthread_self());  // 使用这个  有概率 pthread_join 运行正常sleep(1);printf(" thread_fun \r\n");
}int main()
{pthread_t tid;pthread_attr_t attr;pthread_attr_init(&attr);pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); // PTHREAD_CREATE_JOINABLE// pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_JOINABLE);if(pthread_create(&tid,&attr,thread_fun,NULL)){printf("create new thread failed\r\n");return -1;}// 销毁属性对象pthread_attr_destroy(&attr);//    usleep(100000);if(pthread_join(tid,NULL))  // 等待子进程退出{printf("join thread failed \r\n");}else{printf("pthread_join success  \r\n");}sleep(5);//pmap -x 3214 | grep stackreturn 0;
}

线程分离后,不需要使用pthread_join 来释放该线程资源  线程自身运行完会释放资源

默认线程是可连接  pthread_join会等待资源释放

pthread_detach(pthread_self());  // 使用这个  有概率 pthread_join 运行正常

gcc thread_detach.c -o thread_detach -lpthread

http://www.xdnf.cn/news/13519.html

相关文章:

  • 【Python】 -- 趣味代码 - 扫雷游戏
  • 使用obsutil工具在OBS上完成基本的数据存取【玩转华为云】
  • LLM 推理:LLM 路由和分层技术的表征和分析
  • 进行性核上性麻痹护理指南:全维度守护健康
  • LIGHT (数据库操作)
  • 【Css】css修改滚动条的样式
  • MySQL InnoDB更新流程
  • Python格式化:让数据输出更优雅
  • 场景题目记录
  • Java - Mysql数据类型对应
  • JxBrowser 8.8.0 版本发布啦!
  • 小天互连IM系统:即时通讯在远程工作中的应用
  • 系统思考:恶性循环
  • 走线太长导致的下冲(Undershoot)现象及解决
  • matplotlib画图报错
  • 使用 pytdx,`TdxHq_API` 接口下载数据的 AI 编程指引提示词
  • 微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
  • 第二十章 BKP
  • 华为认证入门怎么选?
  • Java-面向对象-类与对象(基础)
  • leetcode题解450:删除BST中的结点!调整二叉树的结构最难!
  • ​​绿色PCB通关密码:猎板无铅焊料+水性油墨的RoHS合规实践​​
  • SpringBoot基于RabbitMQ实现异步请求处理
  • CentOS7下的Flink 集群部署
  • 【LLM】深入解析MCP的三种传输方式实现
  • 《C++ 继承》
  • 2024年12月6级第一套
  • 【HarmonyOS 5.0】开发实战:从UI到Native全解析
  • 鸿蒙多语言开发实战:3 步实现中英文动态切换(无需重启 App)附完整代码 + 避坑指南
  • CentOS7下的集群化部署