|版权声明:本文为博主原创文章,未经博主允许不得转载。博客地址:https://blog.youkuaiyun.com/sgsgy5
并行和并发
今天我们来讲一下在计算机编程中并行和并发的意思
并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。
并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,通过cpu时间片轮转使多个进程快速交替的执行。
如果字面意思上不好理解的话那么我们可以来看一个例子就可以很轻松的理解出
大师曾以咖啡机的例子来解释并行和并发的区别。
并行是两个队列同时使用两台咖啡机 (真正的多任务)
并发是两个队列交替使用一台咖啡机 ( 假 的多任务)
在计算机上想要实现并行该怎么办,那么我们就要像图中一样增加硬件设备,那么计算机就要增加cpu,但是计算机的cpu是有限的,所以我们就要设计并发来实现在计算机cpu不变的情况下增加运算能力,这就是并发的字面意思。
常见并发编程技术
进程并发
程序和进程
程序,是指编译好的二进制文件,在磁盘上,不占用系统资源(内存、打开的文件、设备、锁….)
进程,是一个抽象的概念,与操作系统原理联系紧密。进程是活跃的程序,占用系统资源。在内存中执行。(程序运行起来,产生一个进程)
程序 → 剧本(纸) 进程 → 戏 (舞台、演员、灯光、道具…)
同一个剧本可以在多个舞台同时上演。同样,同一个程序也可以加载为不同的进程(彼此之间互不影响)
如:同时开两个终端。各自都有一个bash但彼此ID不同。
在windows系统下,通过查看“任务管理器”,可以查看相应的进程。包括我们在基础班写的“飞机大战”等程序,运行起来后也可以在“任务管理器”中查看到。运行起来的程序就是一个进程。
进程状态
进程基本的状态有5种。分别为初始态,就绪态,运行态,挂起态与终止态。其中初始态为进程准备阶段,常与就绪态结合来看。
进