您现在的位置是:首页» windows系统» python多线程编程,python多线程并行处理

python多线程编程,python多线程并行处理

2024-07-13 14:59:54
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。Python进程(Process)、线程(Thread)、协程(asyncio)编程一、多进程编程进程概念过程是计算机操作系

本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。

Python进程(Process)、线程(Thread)、协程(asyncio)编程

一、多进程编程

进程概念

过程是计算机操作系统分配资源的基本单元,一个程序执行的例子,这就是正在执行的程序。在OS的眼里,进程是一个负责分配系统资源CPU时间和内存的实体。一般来说,系统由一系列过程组成:操作系统过程执行系统代码,用户程序执行用户代码,计算机通过CPU重新使用多个路径,所有这些过程都可以同时执行,因此,可执行过程的数目与CPU性能有关。

1、进程的基本状态

就绪:进程的初始状态意味着进程已经具备CPU以外的所有执行条件 运行:进程的初始状态意味着进程已经接收了一个处理器,不需要等待其他资源,状态正在执行 阻塞:进程阻塞也称为进程等待状态,意思是进程等待特定事件(例如I/O操作)的发生,在此期间,进程仍处于内存中并占有CPU资源

2、图示

过程基本使用例

Process简介

python内置的multiprocessing模块提供了类来方便用户创建一个多进程,其基本结构和参数如下:

结构

参数

目标:调用对象,通常是函数、类、进程的执行实体 名称:进程名称 args:调用对象的位置参数组件 kwargs:调用对象的字典 组:基本上没有使用,忽略

过程类提供的方法

is_alive():返回过程是否被激活 停止进程直到进程执行完成或终止为止 在可重写的进程中运行的函数 启动进程,进程开始运行 terminate(): 进程终止

创建进程过程

创建自定义进程继承过程

线程概念

线性过程也被称为轻量过程。线性是执行操作电话的操作系统最小的单元,一般来说,一个过程包含多个线程,至少包含一个线程,也就是说,线程是整个过程的实际操作单元,该线程本身不用于系统资源,它只需要必要的基本资源,但所有属于同一进程的资源都可以在线程之间共享,同一进程中的线程可以同时执行,一个线程可以创建和摧毁另一个线程,因此,多线程中,线条异常可能导致整个多个线条异常,但是多进程不会,因为每个过程的资源都是独立的。

1、线程的基本状态

就绪:线程的初始状态意味着线程有所有运行的条件,等待处理器,并且逻辑上已经运行 运行:线程的初始状态是线程占用处理器并执行的状态 阻塞:线程阻塞状态是线程等待特定事件或信号数量的状态,逻辑上不能运行

2、图示

线程基本使用例

Thread简介

python提供了实现线程函数的线程类,其基本结构和参数与过程一致,如下:

结构

参数

目标:调用对象,通常是函数、类、进程的执行实体 名称:进程名称 args:调用对象的位置参数组件 kwargs:调用对象的字典 组:基本上没有使用,忽略

过程类提供的方法

is_alive():返回过程是否被激活 停止进程直到进程执行完成或终止为止 在可重写的进程中运行的函数 启动进程,进程开始运行 terminate(): 进程终止

创建线程线程

创建一个自定义Thread线程继承Thread类

三、协程编程

协程概念

坐标是轻量线程,拥有自己的注册和堆栈,协程调度切换时,保存存储库上下文并堆栈到另一个位置,切回来时,恢复预备状态,因此,共处理器可以保留最后的调用状态信息,即每次过程重入,它相当于输入先前的调用状态。编码适合IO密集的任务处理,因为连贯性是基于线性,它的呼叫是线程中的进程,是单线程操作,因此,效率略高于多线性。

asyncio的基本例子

asyncio简介

python通常使用的编码库,如asyncio,与 python的async/await结合起来,可以方便地用于编码操作。

基本使用

4.差异与关系及应用场景

区别和联系

类型 区别和联系不同点
多进程 多个任务可以同时处理。多个进程被设计为充分利用CPU性能完成多个任务。适用于大规模计算任务(计算密集型),线程的链接是包含线程的进程。进程至少包含一个线程, 即进程运行实体.
多线程 能同时处理多个任务,线性是执行操作电话的操作系统最小的单元,被包含于进程之中。一个线程可以共享同一进程的资源,因此使用多个线程可以大大增加资源利用,使程序更快响应。
协程 多个任务可以同时处理,编码是一个轻量级线程,一个线程,坐标处理是在线程中进行的,即线程包含坐标。编码比线性编程略有效率,和线性编程一样,适合IO密集的任务处理。

场景重复计算分类与选择的应用

计算密度-多处理/共处理-CPU利用率

计算密度是一种非常大的、集中的计算、逻辑判断类型,也被称为CPU密度,因为它主要占用CPU资源,并且当计算任务的数量与CPU核心的数量相等时,CPU最有效的时候,所以计算密度任务特别消耗CPU。

IO密集型-多线性-网络(输入/输出)

IO密度是一种输入输出操作,在计算和处理过程中需要大量的输入和输出。例如,当磁盘读取数据和输出数据非常大时,它属于IO密度类型。因为IO操作的运行时间比CPU和内存运行时间长得多,所以大部分时间任务都在等待IO操作完成,IO的特点是低 CPU 消耗,所以,IO任务越多,CPU效率越高,当然不是越多越好,有一个极限值。

XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com