并发与并行

技术
0 166
小学生
2023-02-13

并发和并行的区别

    所有的并发处理都有排队等候,唤醒和执行这三个步骤,所以并发是宏观的观念,在微观上他们都是序列被处理的,只不过资源不会在某一个上被阻塞(一般是通过时间片轮转),所以在宏观上多个几乎同时到达的请求同时在被处理。如果是同一时刻到达的请求也会根据优先级的不同,先后进入队列排队等候执行。

     并发与并行是两个既相似但是却不相同的概念:

     并发性:又称共行性,是指处理多个同时性活动的能力,。

     并行:指同时发生两个并发事件,具有并发的含义。并发不一定并行,也可以说并发事件之间不一定要同一时刻发生。 

     并发的实质是一个物理CPU(也可以是多个物理CPU)在若干个程序之间多路复用,并发性是对有限物理资源强制行使 多用户共享以提高效率。

     并行指两个或两个以上事件或活动在同一时刻发生,在多道程序环境下,并行使多个程序同一时刻可在不同CPU上同时执行。    

     并发是在同一个cpu上同时(不是真正的同时,而是看来是同时,因为CPU要在多个程序之间切换)运行多个程序。

     并行是每一个CPU运行一个程序。

     并发是指一个处理器同时处理多个任务。 

     并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 

     并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。 

 打个比方:

    你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。

    你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发。  (不一定是同时的)

    你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行。

并发、并行和多线程的关系:

     并行需要两个或两个以上的线程跑在不同的处理器上,并发可以跑在一个处理器上通过时间片进行切换。

     并发是轮流处理多个任务,并行是同时处理多个任务


并发的缺点:

1. 进程/线程的数量越多,切换成本就越大,也就越浪费

2.多线程伴随同步竞争(如锁,同步竞争资源等),开发设计变得越来越复杂

高消耗调度CPU,高内存占用


> 视频链接 : https://www.bilibili.com/video/BV1gf4y1r79E/?p=26


倒序看帖 只看楼主
回帖