并发与并行

目录

实际并行与并行的感觉

为什么感觉并行和为什么不实际?

并发是关于设计,并行是关于硬件

结论


本文将解释并发性和并行性之间的区别。并发与并行主义长期以来一直是一个备受争议的话题。

实际并行与并行的感觉

IT行业的技术词汇有时非常混乱,并发并行就是其中的一部分。许多开发人员认为并发和并行意味着同时执行 50%是正确的,但有一个很大的区别:

  • 并发性让您感觉到并行性而并行性,顾名思义就是实际的并行性。

并行性的感觉意味着您在同一个核心上执行多个任务,核心在任务之间切换上下文并为它们提供服务。你也可以说这有时间切片/重叠时间段,因为你的单核只是将一些时间用于一个任务,然后花一些时间用于其他任务。

实际并行性意味着您可以并行执行多个核心上的多个任务

https://www.codeproject.com/KB/cs/1267757/8e925d68-4f47-4ef9-8d51-6a39f19c75d2.Jpeg

注意并发是一个更广泛的术语,并行性是它的一个子集

映射到现实世界,左图描绘了并行性,右图描绘了并发性。

https://www.codeproject.com/KB/cs/1267757/ceedb246-87c6-4f6f-8ba5-8533dbd4b74c.Jpeg

为什么感觉并行和为什么不实际?

为了实现实际的并行性,我们需要专用内核,独立内存等。
我们需要更多资源。

假设我们想要显示完成某项任务的进度条。现在我们真的不希望分配单独的核心来显示进度。

https://www.codeproject.com/KB/cs/1267757/69fb4709-5a52-4dcc-b48a-31304a45a0da.Jpeg

我们不希望性能在这里,我们希望在生理上最终用户感觉两个任务同时发生。

我们想要击败100 FPS的人眼能力,并在不强调我们的计算机资源的情况下给出并行性的幻觉。但是,假设我们想要处理具有一百万条记录的大型Excel文件,那么我们希望能够实现实际的并行性以实现性能。

并发是关于设计,并行是关于硬件

为了实现并发性,我们需要独立地编写应用程序逻辑。例如,假设您希望处理员工数据,您希望将薪水增加x%,将奖金增加x%。

https://www.codeproject.com/KB/cs/1267757/18265157-2fb7-48f4-bbd4-baa2518da70d.Jpeg

因此,您可以通过遵循不同的设计将应用程序分解为逻辑单元:

设计1

  • 将数据分成每个50%的大小。
  • 将每个50%作为单独的单元处理。

设计2

  • 处理奖金计算作为单独的单位。
  • 处理工资计算作为单独的单位。

设计3

  • 将数据分成每个50%的大小。
  • 分别为每50%数据处理奖金计算和工资计算。

可以有许多这样的设计和组合。因此,当您说您的应用程序支持并发时,您的应用程序应该组成小型独立单元。

现在你采用这些单元并在一个核心(并发)上运行,或者在多个核心上运行(并行)。所以并发性是关于设计的,而在并行性方面,我们从硬件角度讨论更多,2核心,3核心等等。

如果您尝试将每个并发代码作为并行运行,则会不必要地消耗资源。因此,问问自己是否想要一个幻觉(并发)或者你想要表现(并行)。

结论

 

并发

并行

基本定义

使用重叠或时间切片在同一核心上执行多个任务。

在不同的核心上执行多个任务。

目标

在不强调资源的情况下感受并行性。

性能的实际并行性。

透视

软件设计:以协作方式独立执行计算的组合。

硬件:执行并行计算。

资源利用率

  • 并行性是并发的一个子集。
  • 并发可实现并行性。
  • 并发性更多地涉及软件设计,而并行性更多地涉及硬件。
  • 并发性给出了并行性的假象,而并行性则与性能有关。
  • 并发只需要一个核心,而并行性需要至少2个核心。

 

原文地址:https://www.codeproject.com/Articles/1267757/Concurrency-vs-Parallelism

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值