当前位置:   article > 正文

java并发和并行的区别

java并发和并行的区别

概念:

并发:以交替的方式 利用等待某件事情完成的时间  来做其他事情,轮流执行任务,不一定同时。宏观上同时,微观上依次执行。

并行:在同一时刻,任务同时开始进行,彼此没有依赖关系。多个任务同一时刻同时执行。

举例:

并行:食堂排队打饭,如果把每个窗口看做CPU,每个同学看作进程,那么在某一刻在各个窗口打饭的同学可以认为是并行的。

并发:同样以打饭为例,对其中一个窗口而言,在该窗口排队的每个同学只能依次获得打饭机会, 在食堂开始服务的时间段内都能打到饭, 因此可以认为该队列的每个同学是并发的。

Erlang 之父 Joe Armstrong  用一张5岁小孩都能看懂的图解释了并发与并行的区别

并发:两个队列交替使用咖啡机             

并行:两个队列同时使用两台咖啡机

我的理解:(面试高手回答)

并行和并发是java并发编程的一个概念,并行是指在多核 CPU 架构里面,同一个时刻,同时可以执行多个线程的能力,在单核CPU架构里,同一时刻只能运行一个线程,在4核4线的CPU架构里面,同一时刻可以运行4个线程,那么四个线程并行执行。

而并发是指在同一时刻,CPU能够处理的任务数量,也就是说CPU的一个并发能力,在单核CPU架构里,操作系统通过时间片的机制,来提升CPU的一个并发能力的,在多核CPU架构里面,基于任务并行的能力,CPU时间片的切换能力,来提升CPU的一个并发能力。

总的来说:并发是一个宏观的概念,CPU能够承载的压力的大小

                  并行是微观上概念,描述CPU同时执行多个任务的能力

我是小天,路虽远 行必至,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/793883
推荐阅读
相关标签
  

闽ICP备14008679号