1. JS中同步和异步的区别
    js是一门单线程语言,所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推。如果一个任务耗时过长,那么后面的任务就必须一直等待下去,会拖延整个程序,常见浏览器无反应,可能就是一段代码死循环,造成程序卡住在这个位置,无法继续
    为了解决这个问题,js的执行模式分为两种:同步和异步。
    “同步模式"就是上一段的模式,后一个任务等待前一个任务结束,然后再执行,程序的执行顺序与任务的排列顺序是一致的、同步的;“异步模式"则完全不同,每一个任务有一个或多个回调函数(callback),前一个任务结束后,不是执行后一个任务,而是执行回调函数,后一个任务则是不等前一个任务结束就执行,所以程序的执行顺序与任务的排列顺序是不一致的、异步的。
    具体来说,异步运行机制如下:
    (1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。
    (2)主线程之外,还存在一个"任务队列”(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。
    (3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列”,看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。
    (4)主线程不断重复上面的第三步。

"异步模式"编程的4种方法
1.回调函数
2.事件监听,任务的执行不取决于代码的顺序,而取决于某个事件是否发生
3.发布订阅模式,也叫观察者模式
4.Promises对象

最基础的异步是setTimeout和setInterval函数,很常见,但是很少人有人知道其实这就是异步,因为它们可以控制js的执行顺序

作者:A落儿
链接:(https://www.jianshu.com/p/9e93a854d6a5)
来源:简书

本文参考文章:
(http://www.cnblogs.com/c3gen/p/6170504.html)
(http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html)

JS中同步和异步的区别相关推荐

  1. JS中同步与异步的理解

    你应该知道,javascript语言是一门"单线程"的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条 ...

  2. Web请求中同步与异步的区别

    普通的B/S模式就是同步,而AJAX技术就是异步,当然XMLHttpReques有同步的选项. 同步:提交请求->等待服务器处理->处理完毕返回.这个期间客户端浏览器不能干任何事. 异步: ...

  3. java异步日志跟同步区别_AJAX中同步和异步的区别和使用场景

    AJAX中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式:在W3C的教程中推荐使用异步执行: 下面来区别一下同步和异步有什么不同: 异步:在 ...

  4. JS中同步和异步问题及其区别

    1.同步和异步 首先,我们浏览器常用的是JS语言,但其实相比于JAVA来说,JS其实是单线程语言,JavaScript在同一个时间只能做一件事,单线程意味着,如果在同个时间有多个任务的话,这些任务就需 ...

  5. js同步和异步的区别

    js同步和异步的区别 同步任务 异步任务 同步和异步运行机制 首先,不同于其他后端语言,javascript语言是单线程机制.所谓单线程就是按次序执行,执行完一个任务再执行下一个.对于浏览器来说,也就 ...

  6. 线程中的同步和异步的区别

    线程中的同步和异步的区别 一.同步        所谓同步,就是发出一个功能调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作.是多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率不 ...

  7. 简述同步和异步的区别

    简述同步和异步的区别 同步: 同步的思想是:所有的操作都做完,才返回给用户.这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉 ...

  8. Java中同步和异步的区别是什么?优点缺点以及概念理解

    同步:提交请求--->等待服务器处理--->服务器处理完毕返回的这个期间客户端浏览器不能干别的事 异步:请求通过事件触发--->服务器处理(这时客户端浏览器还可以做其他的事情)--- ...

  9. 同步和异步的区别及优缺点

    学习编程,同步异步是必须要理解学习的知识点,接下来让我们一起通过举例来理解同步和异步的区别,以及同步和异步的优缺点吧 同步和异步的区别 程序里面的同步和异步和我们现实生活理解不太一样,一般我们对同步的 ...

最新文章

  1. 【Linux】一步一步学Linux——pidof命令(122)
  2. Matlab矩阵的拼接
  3. button的onclick函数一直刷新
  4. vue移动端,点击微信授权登录
  5. thinkphp开启子域名无法正常访问_内网穿透之动态域名解析_DDNS(二)
  6. 基于HAL库的STM32F704的电阻式触摸屏的学习
  7. 网站安全渗透测试团队公司解决防护方案
  8. pytorch之拿训练好的LeNet模型测试自己的手写图片预测失败
  9. 商务办公软件应用与实践【1】
  10. 评价模型——目标权重的确定
  11. Mysql:Got error 28 from storage engine
  12. markdown 转word
  13. Linux命令之修改用户账户usermod
  14. 设计模式之 State(状态模式)通俗理解
  15. 7月20日到12月3日
  16. 51单片机利用8266获取网络时间
  17. 高端服务器系统,浪潮高端服务器分析
  18. java 枚举类型enum ppt,关于JAVA枚举类使用的异常
  19. 通过链接自动生成二维码
  20. HDU 5224 Tom and paper(最小周长)

热门文章

  1. CUDA和NVIDIA-Driver安装问题
  2. CAD正式学习(一)
  3. Oracle:SQL语句--对表空间的操作——删除表空间
  4. 今日头条技术架构分析,看这篇就对了!
  5. vue微信支付业务生成二维码qrcode
  6. [微语21.01.03] 耐性
  7. Firefox火狐浏览器解决有软件正在阻止 Firefox 安全地连接至此网站问题
  8. android通话音量和多媒体音量,Android中获取与设置媒体,通话等音量的方法
  9. 记一次ThreadLocal在工作上的妙用
  10. OpenCV3 和 Qt5 计算机视觉:6~10