python语言基础-6 多任务-6.0 基本概念

部署运行你感兴趣的模型镜像

声明:本内容非盈利性质,也不支持任何组织或个人将其用作盈利用途。本内容来源于参考书或网站,会尽量附上原文链接,并鼓励大家看原文。侵删。

6.0 基本概念

6.0.1 多任务的场景

前面我们学习的代码示例通常都是单任务的,即每个步骤之间都是顺序执行的。但实际中也有很多时候是多任务的,例如:生产汽车,各部分零件同时生产,最后集中在一起组装。这个过程中不会按次序生产轮子、发动机、底盘、外壳及其他零部件,而是这些零件同时开工生产,有的事件之间有先后次序,有的事件之间是无关的。

完成一个任务的执行平台称为流水线。一个流水线只能按次序完成一个任务的流程,那么多条任务同时执行就需要多条流水线同时开工。

6.0.2 并行与并发

并行与并发是执行多任务的两种方式。

并行:指多条任务同时执行。就像多条生产线同时开工生产。计算型的任务由于多数中间过程与结果之间存在严格的次序关系,通常使用并行。

并发:指多条任务同时发起,并不严格同时执行。就像一个工人来回切换地执行多条流水线。IO型的任务通常使用并发,使较慢IO任务让出资源,优先完成较快的任务。

6.0.3 进程、线程与协程

根据任务拆解的不同层次,任务下可能有一个到多个子任务,子任务下也可以有一个到多个子任务。而执行任务的流水线也是像这样分层次的。计算机执行任务的流水线就是进程、线程与协程(python中使用的),它们就是不同层次的流水线。

进程(Process):进程是计算机中的一种计算资源分配单位(即执行任务的流水线)。计算机中一个应用程序的启动运行,至少占用一个进程。典型的比如网络应用中,一个端口号通过对应一个进程号。在C和java中执行一个程序通常以main函数为入口,因此main函数通常也是开启进程的标志。

线程(Threading):线程是进程下进一步划分的计算资源分配单位(即执行任务的流水线)。运行一个进程时,进程下至少包含一个线程,并且如果进程下只有一个线程时,这个线程通常就是主线程main。多线程的情况比如:我们运行一个程序,将网络上的文件保存到本地并添加一条记录到本地记录表中,就可以让主线程保存文件的同时,再开启一个线程执行将记录保存到记录表的操作。

协程(Coroutine):被称为微线程,是单个线程内的上下文切换执行技术,其实就是通过一个线程实现代码块相互切换执行。协程是python中的一种机制,C和java中是没有的。

由进程、线程与协程的定义可知,进程与线程是可以被调度来做并行或并发的,而协程只能调度做并发而不能做并行。

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值