同步、异步、并发、并行之间的区别与联系

一、并发和并行

1、并发(Concurrency)

并发是一个比较宽泛的概念,它单纯的代表计算机能够同时执行多项任务
对于单核处理器来说,它可以通过分配时间片的形式让一个任务运行一段时间,然后切换到另外一个任务再运行一段时间
在这里插入图片描述

2、并行(Parallelism)

对于多核处理器来说,我们可以在不同的核心上真正并行的执行任务,而不用通过分配时间片的方式运行
在这里插入图片描述

二、同步和异步

同步和异步是两种不同的编程模型

1、同步(Synchronous)

同步代表必须等到前一个任务执行完成之后,才能进行下一个任务
在同步中没有并行或者并发的概念
在这里插入图片描述

2、异步(Asynchronous)

异步代表不同的任务之间并不会相互等待,也就说执行任务A的同时也可以执行任务B
在这里插入图片描述
一个典型的实现异步的方式就是多线程编程,我们可以创建多个线程并且启动它们,在多核的环境下,每个线程就会被分配到独立的核心上运行,实现真正的“并行”
如果使用的是单核处理器,那么就会通过分配时间片的方式来处理这些多线程,这些线程依然是“并发”地进行

3、JavaScript

JavaScript本身是没有多线程的概念的,通过回调函数机制依然能够实现单线程的“并发”。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值