恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Linux进程与线程(2)

  • 首页
  • 资讯中心
  • /
  • Linux进程与线程(2)

相关资讯

能效 1.5–1.9 倍、延迟 1.7–3.6 倍:OpenAI Jalapeño 首批跑分追平英伟达 GB300,单芯片额定 700W 2026/8/28 4:21:05
多协议RF与NFC:BLE MCU重塑智能设备连接与配网体验 2026/8/28 4:21:05
Supervision库:统一目标检测后处理与多目标跟踪实践指南 2026/8/28 4:21:05

最新资讯

OpenAI销售高管回流Salesforce:企业级AI销售打法生变
一文掌握Agent八股
2026定量定性样本怎么选?数据质量与执行效能选型标准解析
CANoe_CANalyzer_软件安装问题基本解决方案
称重数据上云:秤的尽头是信任
小滴课堂-Redis高并发高可用集群百万级秒杀实战

今日推荐

2026学术工具专业测评|Paperxie全维度性能实测报告[特殊字符]
凭什么稳居论文工具顶流[特殊字符]Paperxie综合实力深度全解析
2026论文工具深度测评|为什么Paperxie是目前最稳的学术工具✅

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

Linux进程与线程(2)

发布时间:2026/8/28 4:21:05
Linux进程与线程(2) 一、什么是线程线程被称作轻量级进程是完成任务创建、调度、消亡的执行单元。进程内部可以存在多个线程所有线程共享进程的资源每个线程拥有自己独立栈空间。二、进程与线程核心区别进程操作系统资源分配最小单元每个进程独占0‑4G虚拟地址空间包含文本段、数据段、系统数据段进程之间资源完全隔离。线程操作系统任务调度最小单元线程运行在进程的地址空间之内。独有栈空间线程内部局部变量每个线程互不干扰。共享堆区、全局变量、静态变量、字符串常量、代码文本区同一个进程的全部线程共用。重点局部变量在线程栈线程私有全局、static全部共享多线程同时修改会产生竞争问题。三、线程创建特性每个线程自带独立栈空间Linux默认大小8MB。创建出来的多个线程宏观并行运行微观串行由操作系统内核完成调度。四、线程消亡与僵尸线程线程执行结束之后必须使用 pthread_join 回收线程资源。如果不回收会产生僵尸线程残留的线程栈空间得不到释放造成内存泄漏。类比记忆进程用 wait/waitpid 回收子进程线程对应 pthread_join 回收。五、线程常用接口对照表进程API 对应线程APIfork pthread_createexit pthread_exitwait pthread_join1.pthread_create 创建线程int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);thread 输出参数存放新线程ID。attr 线程属性栈大小、优先级等传NULL使用默认属性。start_routine 线程函数指针线程启动后执行这个函数。arg 传给线程函数的参数只能是 void* 类型。返回值成功返回0失败返回错误码不设置errno不能用perror。注意传递整型数字给线程函数规范写法 (void *)(long)num 接收时 int val (int)(long)arg 适配64位系统。2.pthread_exit 退出线程void pthread_exit(void *retval);功能终止当前线程不会影响同进程其他线程。retval 线程退出状态这个值可以被 pthread_join 获取。注意不要在线程函数内部使用 exit() exit 会直接把整个进程全部结束所有线程一同销毁。3.pthread_join 阻塞回收线程int pthread_join(pthread_t thread, void **retval);功能阻塞等待指定线程执行完毕回收线程栈资源。thread 要等待回收的线程ID。retval 接收线程 pthread_exit 传出的状态不需要可以传NULL。返回值成功返回0失败返回错误码。⚠️重要坑点不能对未创建、无效的tid执行 pthread_join 程序直接崩溃。必须保证线程已经创建才允许调用join工程中一般搭配标记数组判断。调用之后主线程会原地阻塞一直等到目标线程运行结束代码才继续向下执行。六、实操代码要点总结多线程作业中需要数组标记哪些线程已经创建避免重复 pthread_create 。返回值判断下标一一对应创建几号线程就判断对应下标的返回值。数组循环注意边界数组大小N循环条件 i N 。键盘 getchar 读取按键需要过滤换行符 \n 防止回车被当成输入。编译链接必须增加 -pthread 否则报函数未定义。pthread_join 会阻塞输入q退出之后主线程会等待所有子线程全部跑完程序才结束属于正常行为。重点总结进程管资源分配线程管任务调度。栈私有全局/静态/堆共享。pthread_create 创建 pthread_exit 退出线程 pthread_join 回收三一套组合。线程传数字参数必须经过long中间转换。join只回收真实创建成功的线程不要直接回收无效tid。编译选项 -pthread 。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号