zoukankan      html  css  js  c++  java
  • Javascript 之 异步和单线程

    异步 指的是程序不是按照代码顺序执行的

      同步会阻塞代码执行,而异步不会,

      alert() 是同步,setTimeout()是异步

    前端使用异步的场景 需要等待的情况下,因为等待不能阻塞程序执行,所以需要使用异步

    定时任务: setTimeout() 、 setInverval() 

    网路请求: ajax 请求、动态的 <img /> 加载

    事件绑定:如 onload 、 click ... 等

    单线程  指的是一次只能干一件事情,串连关系,异步代码放到后面执行

    console.log(100);
    setTimeout(function () {
      console.log(200);
    }, 1000);
    console.log(300);

    // 100
    // 300
    // 200

    1、执行第一行,打印100
    2、执行setTimeout后,传入setTimeout的函数会被暂存起来,有等待时间,先封闭起来,不会立即执行(单线程的特点,不能同时干两件事)
    3、执行最后一行,打印300
    4、待所有程序执行完,处于空闲状态时,会立马看有没有暂存起来的要执行
    5、发现暂存起来的setTiemout中的函数,待等待时间过后,解封立即执行
  • 相关阅读:
    hadoop运行mahout问题解决方法
    在cdh5.1.3中在mapreduce使用hbase
    scala-eclipse
    创建cloudera-cdh5本地yum源
    HttpClient 操作总结
    Java NIO 操作总结
    linux 操作总结
    白话机器学习
    Java(jdk1.7) 陷阱
    Weibo Crawler in Action
  • 原文地址:https://www.cnblogs.com/joffe/p/7673718.html
Copyright © 2011-2022 走看看