py_并发_多进程笔记
并发编程
并发编程是一种有效提高操作系统(服务器)性能的一种技术手段,现代的操作系统之中应用最为明显。例如:现代的CPU都属于多核CPU(并行可以执行的计算程序量提升)。
早期的DOS操作系统有一个非常重要的特征:一旦你的系统沾染了病毒,那么所有的程序都无法运行了。DOS系统属于单进程的模型(在同一个时间段上只能够运行一个程序,病毒的程序运行了,其它的程序就无法运行了)
在早期的硬件系统之中由于没有多核CPU设计,所以对于所有的可用资源实际上就需要进行时间片的轮转算法,保证在同一时间段可以同时执行多个进程,但是在某一个时间点上只允许执行有一个进程(利用这种方法就很好的压榨了CPU和所有资源的全部潜力)。
进程指的是一个具有一定独立功能的程序关于某个数据集合的一次运行活动;
进程是系统进行资源分配和调度运行的基本单位;
进程实体中包含有三个组成部分:
- 程序
- 数据
- PCB(进程控制块)
单进程与多进程系统

服务器的硬件的性能是有限的,但是对于大部分的程序来讲都属于过剩的状态,于是如果按照单进程的模式来执行程序你会发现,所有的硬件资源几乎都会被浪费。在多进程的时代里面,多个程序并行执行。
多进程调度

获取CPU数
1 | |
1 | |
进程的状态和进程间通信
任何一个进程都包含各自独立的数据,也就是说不同的进程之间的数据是不可以直接进行互相访问的(可以通过其它技术的形式进行访问,例如:“管道”),所有的进程从其创建到销毁都有各自的生命周期,在进程之中生命周期要经过如下几个阶段:
- 创建状态:系统已经为其分配了PCB(可以获取进程的信息),但是所需要执行进程的上下文环境还未就绪,这个时候进程还无法被调度;
- 就绪状态:该进程已经分配到了除CPU之外的全部资源(上下文)并等待CPU调度;
- 执行状态:进程已经获得CPU资源,开始正常提供服务(执行进程);
- 阻塞状态:所有的进程不可能一直强占CPU(共享资源),依据资源调度的算法,每一个进程运行一段时间后,交出当前的CPU资源,给其它进程执行;
- 终止状态:某一个进程达到了自然终止的状态,或者进行了强制性的停止,那么进程将进行到终止状态,将不再被执行。

py_并发_多进程笔记
https://blog.wangxk.cc/2020/01/15/py-并发-多进程笔记/