python多线程编程,python多线程并行处理
本内容由系统网小编为大家分享,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
相关推荐
-
superfetch禁用win10,windows11superfetch可以禁用吗
2024-07-18 03:49:11 -
win10手机连接功能,win10手机连接小米手机
2024-07-16 03:13:06 -
360se.exe怎么关闭,360se.exe占用内存过高
2024-07-15 11:53:19 -
360se.exe是什么文件,360se.exe是什么
2024-07-15 10:04:28 -
交互式登录进程初始化失败win7,开机时交互式登录进程初始化失败
2024-07-15 02:12:48 -
360se为什么有8个进程,360se.exe是干嘛的
2024-07-13 19:50:39