Javascript异步同步的区别

为什么有同步和异步的概念呢?

主要的原因的就是Javascript的单线程的,单线程意味着所有任务执行都需要排队,前一个任务结束,才会执行下一个任务,如果前一个任务耗时很长,后一个任务就不得不一直等着。于是就有了一个概念-任务队列,如果排队是因为计算量多大,CPU忙不过来,那也就算了,但是很多时候CPU是闲着的,因为IO设备(输入输出设备)很慢,比如(Ajax操作从网络请求数据),不得不等着结果出来,再往下执行,于是Javascript语言的设计者意识到,这时主线程完全不管IO设备,挂起处于等待中的任务,先运行排在后面的任务,等到IO设备返回了结果,再回过来,在剩下的任务执行完成。

于是任务分成两种:

  • 同步任务
  • 异步任务

同步任务指的是:

  1. 在主线程排队执行的任务,只有前一个任务执行完成,后一个任务才会执行。
  2. 同步的就是执行完一个事情之后,再去执行下一个事情。
  3. 同步指的是等所有的操作全部做完,写入数据库当中,才会返回结果给用户,但是当数据量一旦过大的时候,那么就会出现堵塞的情况,这样用户体验非常的不好。

异步任务指的是:

  1. 不进入主线程,而是进入“任务队列”的任务,只有等主线程任务执行完成,“任务队列”开始通知主线程,请求执行任务,该任务才会进入主线程执行。
  2. 异步就是我做完一件事情之后,可能我先去泡一杯咖啡,然后回来在继续敲代码。
  3. 异步不需要等待数据库是否写入,而是先通知用户执行成功,然后在慢慢的写入数据库,这样会减轻服务器的压力,而且用户体验也比较的好。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值