Java基础知识强化之多线程笔记04:并行和并发 区别

1. 并发 和 并行区别

(1)并发:(单核

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

并发是指两个任务都请求运行,而处理器只能按受一个任务,就把这两个任务安排轮流进行,由于时间间隔较短,使人感觉两个任务都在运行。

并发性是对有限物理资源强制行使多用户共享以提高效率。

 

(2)并行(多核

现在cpu到了多核的时代,那么就出现了新的概念:并行

 

并行,是每个cpu运行一个程序。

并行是真正的细粒度上的同时进行;既同一时间点上同时发生着多个并发;更加确切并且简单的来讲:就是每个cpu上运行一个程序,以达到同一时间点上每个cpu上运行一个程序。

 

2. 打个比方:

并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。

并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。

 

并发与并行的本质 ?

• 并发:是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。
• 并行:指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。
原文地址:https://www.cnblogs.com/hebao0514/p/4874778.html