【嵌入式学习3】多任务编程

目录

1、多任务

并发:在一段时间内交替去执行任务

并行:

2、线程

进程与线程

守护线程


1、多任务

同一时间内 执行多个任务, 多任务分为并发和并行两种形式

并发:在一段时间内交替去执行任务

软件1执行0.01秒,切换到软件2,软件2执行0.01秒,再切换到软件3,执行0.01秒......这样反复执行下去。表面上看,每个软件都是交替执行的,实际上是由于CPU的执行速度块,就像这些软件都在同时执行一样,这里需要注意单核cpu是并发的执行多任务的。

并行:

对于多核cpu处理多任务,操作系统会给cpu的每个内核安排一个执行的软件,多个内核是真正的一起执行软件多核cpu是并行的执行多任务,始终有多个软件一起执行。

2、线程

多任务开发,有多种实现方式,从资源占用大小排序:进程 > 线程 > 协程

进程与线程
  • 进程是分配资源的基本单位, 一旦创建一个进程就会分配一定的资源,
  • 线程是cpu调度的基本单位,每个进程至少都有一个线程,而这个线程就是我们通常说的主线程。
守护线程

守护线程是一种在后台运行的线程,它不会阻止程序的退出。当程序中所有的非守护线程(用户线程)都结束运行后,程序会自动退出,而不会等待守护线程完成。守护线程通常用于为程序提供服务,比如清理资源、监控程序状态等。

相关推荐
努力学习的小廉5 分钟前
【QT(六)】—— 常用控件(三)
开发语言·qt
xyx-3v10 分钟前
RK3506G移植APM飞控的可行性
单片机·学习
Z.yping11 分钟前
qt语言家一键更新或发布多个模块且多个国家的语言
开发语言·qt·restful
MSTcheng.13 分钟前
【C++】set / multiset 保姆级教程:从底层原理到实战应用!
开发语言·c++·set
历程里程碑14 分钟前
C++ 16:C++11新特化
c语言·开发语言·数据结构·c++·经验分享
巴拉巴拉~~16 分钟前
KMP 算法通用步进器组件:KmpStepperWidget 横向 / 纵向 + 匹配进度 + 全样式自定义
java·服务器·开发语言
weixin_3077791317 分钟前
赋能插件,驱动图表:Jenkins ECharts API插件详解
运维·开发语言·自动化·jenkins·echarts
IMPYLH19 分钟前
Lua 的 Math(数学) 模块
开发语言·笔记·lua
EmmaXLZHONG21 分钟前
Notes of Software Engineering Ninth Edition(软件工程第九版笔记)
笔记·软件工程
kaikaile199529 分钟前
雷达仿真中时域与频域脉冲压缩的对比 MATLAB实现
开发语言·matlab