「Python网络编程」再识多任务的真面目/多进程(三)
博主前言: 上篇博客我讲述了多任务的一种实现方式—多线程。这篇博客我继续讲述使用进程的方式来实现多任务。由于进程的知识实属有点抽象,特别是结合线程来讲进程确实有点难度,所以在本篇博客开写之前,我借阅了多个论坛大佬写的有关于多进程的博客,所以这篇博客如有雷同,算我抄你的。但是我保证,百分之一大半都是自己理解所得。 1. 多进程 在「Python网络编程」系列第一篇博客讲端口号时,我们了解了有关进程的概念。 进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统分配资源的基本单元,是操作系统结构的基础。 如果你觉得上段黑体字有点难以理解,那么你可以就把进程理解为运行着的程序也可。程序与进程的区别就是: 程序是静态的,进程是动态的。 我在网上看到一个公式觉得非常精辟: 进程 = 程序 + 资源 1.1 进程的状态 1)就绪状态(Ready): 进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。 结合上面的公式可以理解为, 就绪状态就是程序运行的资源已经准备好,等待CPU执行。 2)运行状态(Running): 进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目