当前位置: 首页 > 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.lryc.cn/news/621993.html

相关文章:

  • 一分钟了解EtherCAT 分支器
  • Web攻防-大模型应用LLM搭建接入第三方内容喂养AI插件安全WiKI库技术赋能
  • Linux操作系统从入门到实战(二十三)详细讲解进程虚拟地址空间
  • 【数据可视化-90】2023 年城镇居民人均收入可视化分析:Python + pyecharts打造炫酷暗黑主题大屏
  • Redis 知识点与应用场景
  • Web 开发 15
  • webrtc编译arm/arm64
  • C# 中的 string / StringBuilder / 值类型 / 引用类型 / CLR 总结
  • KNN算法:从电影分类到鸢尾花识别
  • 标准电子邮件地址格式(RFC 5322 里的 mailbox 语法)
  • 机器学习之PCA降维
  • 大模型系列——从训练到推理:网页数据在大语言模型中的新角色
  • Autosar之CanNm模块
  • ScanNet项目介绍
  • Rust 入门 泛型和特征-深入特征 (十五)
  • 从“写代码”到“定义需求”:AI编程工具如何重构软件开发的核心流程?
  • 【Mysql语句练习】
  • PCA降维全解析:从原理到实战
  • epoll发数据学习
  • Flink中的处理函数
  • 【完整源码+数据集+部署教程】小鼠行为识别系统源码和数据集:改进yolo11-RFAConv
  • JavaScript 原型机制详解:从概念到实战(附个人学习方法)
  • Flink中基于时间的合流--双流联结(join)
  • Java集合Map与Stream流:Map实现类特点、遍历方式、Stream流操作及Collections工具类方法
  • Transformer实战(11)——从零开始构建GPT模型
  • 【入门级-算法-6、排序算法:排序的基本概念冒泡排序】
  • 【100页PPT】数字化转型某著名企业集团信息化顶层规划方案(附下载方式)
  • Redis入门和简介
  • LeetCode 刷题【42. 接雨水】
  • 基于51单片机声控灯设计 智能声音+光线控制 楼道灯 声控开关