您的位置:首页 > 编程语言 > Java开发

Java并发编程四:并发(Concurrent)与并行(Parallel)区别(二)

2016-08-03 15:22 225 查看
这段时间在研究并发(Concurrent)与并行(Parallel)的区别,昨天写了 Java并发编程三:并发(Concurrent)与并行(Parallel)的区别(一),今天看到一篇我认为解释的非常形象的一篇文章,分享给大家。原文地址:Concurrent and Parallel Programming

给五岁的孩子解释并发与并行的区别

What’s the difference between concurrency and parallelism? Explain it

to a five year old.

并发与并行的区别是什么呢?给一个五岁的孩子解释一下。



Concurrent = Two queues and one coffee machine.

Parallel = Two queues and two coffee machines.

并发=两个队列与一台咖啡机

并行=两个队列与两台咖啡机

在来看看昨天关于并发、并行的定义:

并发(Concurrent):是一种构造程序的方式,把任务分解为一个个独立运行的小任务。通信是协调这些小任务的手段。

并行(Parallel):以分组的方式,同时执行每一组并发任务。

两者的区别:并发是同时处理(dealing)很多的事情,并行是同时做(doing)很多的事情。

两个队列与一台咖啡机会产生并发问题,我们的解决方式有两种:

增加一台咖啡机,将其中一个队列分配给新增的咖啡机

将两个队列合并为一个队列,共用一台咖啡机

解决方式1是并行处理的,解决方式2是串行处理的。

总结

我认为并发是任务处理过程中面临的问题,将任务进行合理的分解,采用并行的方式解决问题。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息