Python–Threading

python
Author

dd21

Published

December 5, 2022

代码

代码位置 # 传统的dos系统是一个单进程的程序 windows系统是一个并行的系统,曹勇的是到进程的编程模式, windows进程管理器可以查看进程 ## 在多核cup出现直线的设计方式: 时间片轮转算法,保证同时执行多个进程,但是在摸一个时间点上智能执行一个进程(利用这种方式很好的压榨cpu性能和资源) ## 进程的定义 进程是一个具有一定独立能力的程序关于摸个数据集合的一次运行活动 进程是系统进行资源分配和调度和运行的基本单位 进程实体中包含有三个组成部分: "程序",数据,pcb(进程控制块) 在这里插入图片描述 服务器的硬件性能是有限的,但是对于大部分程序来说都是属于过剩的状态,如果按照传统的单进程的模式来运行,会造成硬件资源的浪费 ## 解决资源过剩的方法 不同的计算机会有不同的配置,如果想要充分发挥出程序的性能,就要可以动态的获取当前可以运行的cpu的数量,于是就出现了可以通过多进程来实现数据和资源的获取

获取当前可cpu数量

# 导入多进程模块
import multiprocessing


print("当前可用cpu数:{}".format(multiprocessing.cpu_count()))  # 当前可用cpu数:8
"""
    任何进程都包含有各自的数据,也就是说不同的进程之间的数据是不可以直接互相访问的,
我们可以通过威其他的技术进行操作  example:管道
    进程的创建到销毁都有 "生命周期" 
"""

进程的生命周期

在这里插入图片描述 ### 创建状态 系统已经为程序分配好了pcb(可以获取进程的信息),但是需要执行的进程的上下文管理器(上下文环境)未分配,所以这个程序无法被调度(运行) ### 就绪状态 该进程已经分配到了出cpu之外的资源(上下文资源(就是调用关系,所属关系)),等待cpu调度 * 例1:桌椅–>教室 * 例2:教室–>学校

执行状态

进程一切就绪,一分配到了cpu资源,开始正常执行(执行进程) ### 阻塞状态 一个程序执行不能一直占用cpu(公共资源),根据资源调度的算法,每一个进程执行一段时间后都需要交出当前cpu的资源,给其他进程执行 ### 终止状态 某一个进程达到了自然终止的状态,或者进程强行停止,那么进程将进入到终止状态,,进程将不再被执行

进程池

多进程可以提高程序运行效率,但是传统的的多进程模式只适合并发并不多的情况:成百上千的并发进程就不适合使用了, 会造成资源过多的消耗,导致资源不足的问题,从而降低了系统性能,所以要提高资源的利用率,以及进程的可复用性 在这里插入图片描述