Python进程之并行与并发的区别

并行 :
当系统有一个以上的CPU时,该过程的操作可能不会并发。当一个CPU执行一个过程时,另一个CPU可以执行另一个过程,这两个过程可以同时进行,而不会相互占用CPU资源。
并发 :
当操作多个过程时,如果系统只有一个CPU,则不可能同时执行多个过程。它只能将CPU的运行时间划分为几个时间段,然后将时间划分为 将段分配给每个过程进行执行,当一个过程代码在一个时间段内运行时,其他过程处于悬挂状态,我们称之为并发。
区别:
并发性和平行性是两个相似和不同的概念。平行性是指两个或多个事件同时执行,而平行性是指两个或多个事件通过时间片轮流执行。在多个程序环境中,并发性是指多个程序在一段时间内同时运行,但在单核CPU中,只有一个程序可以同时执行,所以这些程序只能在微观上交替执行。如果计算机中有多个CPU,可以并发执行的程序可以分配到多个处理器上,实现并行执行,即使用每个处理器处理一个并发执行程序,以便多个程序可以同时执行。
相关推荐:Python视频教程
进程状态如下图所示

在理解其他概念之前,我们应该首先了解过程的几个状态。在程序运行过程中,由于操作系统的调度算法控制,程序将进入几个状态:就绪、运行和阻塞。
(1)就绪(Ready)状态
当过程已分配到除CPU以外的所有必要资源时,只要获得处理器,就可以立即执行。此时,过程状态称为就绪状态。
(2)执行/操作(Running)当过程获得处理器时,其程序正在处理器上执行,此时的过程状态称为执行状态。
(3)阻塞(Blocked)当状态正在执行的过程因等待事件而无法执行时,放弃处理器并处于堵塞状态。导致过程堵塞的事件有很多,如等待I/O完成、申请缓冲区无法满足、等待信件(信号)等。
相关推荐:
一篇文章带你阅读Python中的过程
