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

目录

1、多任务

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

并行:

2、线程

进程与线程

守护线程


1、多任务

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

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

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

并行:

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

2、线程

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

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

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

相关推荐
ha2042894194几秒前
Linux操作系统学习之---线程控制
java·linux·学习
清辞8537 分钟前
C++入门(底层知识C与C++的不同)
开发语言·c++·算法
fqbqrr10 分钟前
2510C++,api设计原则,不除零
开发语言·c++
酌量31 分钟前
从 ROS 订阅视频话题到本地可视化与 RTMP 推流全流程实战
经验分享·笔记·ffmpeg·音视频·ros
科比不来it35 分钟前
Go语言数据竞争Data Race 问题怎么检测?怎么解决?
开发语言·c++·golang
biter down37 分钟前
c语言14:字符指针
c语言·开发语言
光军oi1 小时前
JAVA全栈JVM篇————初识JVM
java·开发语言·jvm
Moniane1 小时前
C++深度解析:从核心特性到现代编程实践
java·开发语言·jvm
uxiang_blog1 小时前
C++进阶:重载类型转换
linux·开发语言·c++
爱编程的鱼1 小时前
C# 参数详解:从基础传参到高级应用
开发语言·microsoft·c#