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

这段时间在研究并发(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. 将两个队列合并为一个队列,共用一台咖啡机

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

总结

我认为并发是任务处理过程中面临的问题,将任务进行合理的分解,采用并行的方式解决问题。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值