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

嵌入式学习日记(29)进程、线程

回收资源空间

子进程回收策略

1、wait阻塞回收:一般情况下父进程专门负责回收

2、waitpid非阻塞回收:搭配轮询方式回收

3、不回收:子进程任务一致执行

4、异步回收:子进程结束后通知父进程进行回收

exec 函数族

三种调用外部程序的方式

#include <stdio.h>
#include <unistd.h>int main()
{char *arg[] = {"ls","-l",NULL};execv("/bin/ls",arg);execlp("ls","ls","-l",NULL);execvp("ls",arg);return 0;
}

l :list,列表      p:path,路径     e:env,环境变量     v:vector,容器

线程

什么是线程

线程是轻量级的进程,也可以实现多任务并发,由进程创建

线程的创建

进程创建线程时默认分配8M栈区空间,同一进程下的多个线程和进程共用堆区、数据区、文本区,线程是任务调度的最小单位

线程的调度

宏观并行,微观串行

线程的消亡

1、线程退出    2、回收空间

进程和线程的区别

线程相关编程

创建、调度、消亡

线程的创建

创建线程

#include <stdio.h>
#include <pthread.h>void *task(void *arg)
{printf("I'm thread,tid = %ld\n",pthread_self());
}int main(int argc,const char *argv[])
{pthread_t tid;int ret = pthread_create(&tid,NULL,task,NULL);if(ret != 0){perror("thread error :");return -1;}while(1){}return 0;
}

http://www.dtcms.com/a/332682.html

相关文章:

  • Java 中 Map 接口详解:知识点与注意事项
  • HarmonyOS 实战:用 List 与 AlphabetIndexer 打造高效城市选择功能
  • Java-99 深入浅出 MySQL 并发事务控制详解:更新丢失、锁机制与MVCC全解析
  • 中小体量游戏项目主干开发的流程说明
  • 模板方法模式C++
  • 基于 Spring AI + Ollama + MCP Client 打造纯本地化大模型应用
  • Java研学-SpringCloud(三)
  • 如何安装 Homestead ?
  • 【学习笔记】JVM内存模型
  • 告别碎片化管理!飞算JavaAI实现端到端业务全流程智能监控
  • Ubuntu DNS 综合配置与排查指南
  • IP生意的天花板更高了吗?
  • 【数据分享】2022 年黑龙江省小麦、玉米和水稻幼苗影像数据集
  • Logstash 实战指南:从入门到生产级日志处理
  • GitHub 热榜项目 - 日榜(2025-08-15)
  • 硬核实用!R+贝叶斯解决真实问题:参数估计(含可靠性分析) + 回归建模(含贝叶斯因子比较) + 生产级计算实践 赠「常见报错解决方案」秘籍!
  • ubuntu 24.04 通过部署ollama提供大模型api接口
  • 线程P5 | 单例模式[线程安全版]~懒汉 + 饿汉
  • CANDB++中的CAN_DBC快速编辑方法,使用文本编辑器(如notepad++和VScode)
  • Redis 知识点与应用场景
  • 六十六、【Linux数据库】MySQL数据导入导出 、 管理表记录 、 匹配条件
  • 日本服务器哪些服务商是可以免费试用的?
  • 拒绝“效果图”返工:我用Substance 3D Stager构建产品可视化工作流
  • 计算机视觉(opencv)实战五——图像平滑处理(均值滤波、方框滤波、高斯滤波、中值滤波)附加:视频逐帧平滑处理
  • vue2生命周期详解
  • Claude Opus 4.1深度解析:抢先GPT5发布,AI编程之王主动出击?
  • 【线上问题】1分钟学会如何定位 Java 应用 CPU 飙升问题
  • Spring中存在两个相同的Bean是否会报错?
  • Amazon Bedrock如何轻松实现复杂的生成式AI模型?
  • 纯C++实现halcon的threshold