并发性和并行性区别到底是什么?

并发性和并行性到底是什么? 其实有很多人都是不理解的这篇文章告诉你。

在现代科技时代,计算机的性能越来越强大,但是在处理大规模数据时,单个计算机的计算能力仍然有限。这时候,我们就需要使用并发性和并行性来提高计算机的运算速度。虽然它们听起来很相似,但它们的概念和实现方式是有区别的。

首先我们可以看一张图:

看完这张图你可能还是不理解,不要着急听完娓娓道来。

并发性:

并发性可以理解为电脑的处理器上一个线程里运行了两个程序,就如上图,一会程序1一会程序2,虽然从物理层面来看的话,两个程序都是同一时间运行的,其实不然,是执行完程序1切换到程序2一个来回切换的过程,只不过是在同一时间段去运行,所以就可以理解为,并发性是在同一时间间隔去执行程序,并不是真正的同一时间点去运行。

其实并发性就如同Python3.4版本后支持的异步关键字,asyncio,asyncio底层是使用协程去运行程序也就是并发性去实现,使用await关键字决定在哪一个时间段去切切换程序,实现物理层面上的同时执行。

并发性的优点:

  • 资源利用率更好

  • 程序设计在某些情况下更简单

  • 程序响应更快

  • 提高系统性能

并发性的缺点:

  • 容易引起线程或者协程安全性问题

  • 可能会增加系统的复杂度

并行性:

并行性可以理解为根据电脑的处理器数量开启多个进程去处理程序,是真正意义上的同一时间运行。在同一时间点去运行程序,就比如你电脑开了网易云音乐去听歌,也开了Vscode去敲代码,都是同一时间点去运行,这也就是并行性。比如上图是开了两个进程同时去执行我们的程序一和程序二,和并发性还是有区别的。

并行性的优点:

  • 可以在同一时间运行程序

  • 程序运行非常高效

  • 适用于大规模数据

  • 可以利用计算机硬件资源

并发性的缺点:

  • 实现比较复杂

  • 对于任务需要分配和管理

  • 需要处理器通信和同步问题

  • 对本地资源要求较大

总结:

综上所述,并发性和并行性都是多任务处理的方法,但是它们的优缺点和使用场景不同。并发性指的是一个处理器在同一时间可以处理多个任务,通过快速的切换来模拟多任务同时运行的效果。与此不同的是,并行性是指多个处理器同时处理多个任务,每个处理器独立工作,可以提高整个系统的运行速度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Renaissance*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值