首页/文章/ 详情

程序猿 | 什么是同步/异步?

1年前浏览468

一、JavaScript是一门单线程的语言

单线程意味着JavaScript在同一个时间只能做一件事,如果在同个时间有多个任务的话,这些任务就需要进行排队依次执行,只有前一个任务执行完,下一个任务才会被执行。从代码块上看,执行过程是从上到下逐句执行的。

JavaScript作为浏览器的脚本语言,主要用来实现与用户的交互,利用JavaScript对DOM的各种各样的操作时,若采用多线程会导致复杂的同步问题,让程序陷入混乱,


二、单线程的Javascript为什么会有同步和异步

Javascript的任务依次执行,万一遇见一个文件读取或者请求服务器之类的任务,需要执行很长时间,就出现了交通阻塞,后面的代码排队无法执行,导致糟糕的用户体验。

为了解决这个问题,JavaScript在设计了异步机制,主线程将耗时长的任务挂起,先去执行后面的代码,等耗时长任务有结果了之后,再去执行。如此,Javascript就存在了同步任务和异步任务两种:

通常而言,页面渲染为同步,而资源加载可异步。


三、JavaScript中的异步是怎么实现的呢

JavaScript的异步机制包括以下几个步骤(1)所有同步任务都在主线程上执行,行成一个执行栈 ;(2)主线程之外,还存在一个任务队列,只要异步任务有了结果,就会在任务队列中放置一个事件 ;(3)一旦执行栈中的所有同步任务执行完毕,系统就会读取任务队列,看看里面还有哪些事件,那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行~

四、如何通过异步编程提高性能

a、回调函数

b、 Promise

   
END    
每日一句    
你不管做什么事,如果做得太好了,一不警惕,就会在无意中卖弄起来。那样的话,你就不再那么好了。——塞林格《麦田守望者》


来源:CATIA模具设计应用
渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-09-29
最近编辑:1年前
恒拱
硕士 签名征集中
获赞 26粉丝 52文章 652课程 1
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈