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中的函数,待等待时间过后,解封立即执行
  • 相关阅读:
    8.26 Linux的目录机构与目录管理
    8.26 基础命令
    8.26 系统基础
    8.26 课程介绍
    8.21-23 awk
    8.20 数组与字符
    8.19 函数
    8.16 sed命令
    Linux操作系统--初级--Linux的目录结构与目录管理
    Linux操作系统--初级--基础命令
  • 原文地址:https://www.cnblogs.com/joffe/p/7673718.html
Copyright © 2011-2022 走看看