美文网首页
异步与单线程

异步与单线程

作者: tency小七 | 来源:发表于2018-05-26 11:16 被阅读0次

单线程:一次只能做一件事情

        console.log(10);
    setTimeout(function(){
        console.log(20);
    },1000)
    console.log(30);//异步
    //打印结果是:10 20 30

上面程序的执行顺序如下:

  • 执行第一行,打印10
  • 执行setTimeout时,这里面的函数会被存起来在一个队列里面,不会立即执行(不能同时处理两件事,与单线程特点有关)
  • 执行最后一行,打印30
  • 所有程序处理完,处理机处于空闲状态,立马看看队列里面有没有待执行的函数啥的
  • 发现setTimeout里面的函数,这个时候执行(也就是说,这个时候,一一秒过去,解禁,下面的题也可以这么理解) ,会打印出来20

单线程和异步的关系

相关面试题:
同步和异步的区别在哪里,分别举一个同步异步的例子
  • 同步会阻塞代码运行,异步不会
    异步:

      console.log(10);
      setTimeout(function(){
          console.log(20);
      },1000)
      console.log(30);//异步
      //打印结果是:10 20 30
    

同步:

    console.log(1000);
    alert(2000);//会阻塞,也就是不会产生异步
    console.log(3000);
    //打印结果是:1000 2000(按确定之后出现3000)  3000
一个关于setTimeout的笔试题
    console.log(1);
    setTimeout(function(){
        console.log(2);
    },0)
    console.log(3);
    setTimeout(function(){
        console.log(4);
    },1000);//1 3 2 4
    //****************************
    console.log(1);
    setTimeout(function(){
        console.log(2);
    },1000)
    console.log(3);
    setTimeout(function(){
        console.log(4);
    },0);//1 3 4 2

    //**************************
    console.log(1);
    setTimeout(function(){
        console.log(2);
    },1000)
    console.log(3);
    setTimeout(function(){
        console.log(4);
    },1000);//1 3 2 4
前端需要使用异步的场景是哪些

(需要等待的时候)

  • 定时任务:setTimeout,setInterval
  • 绑定事件:addEventListener(click等等)
  • 网络请求:ajax和img动态加载

相关文章

  • javascript单线程,异步与执行机制

    js的单线程模型与游览器的进程/线程息息相关,在了解js单线程与异步的时候,建议先看看这篇文章 单线程/异步 js...

  • 异步流程控制

    单线程与异步 JavaScript是单线程运行、支持异步机制的语言。进入正题之前,我们有必要先理解这种运行方式。 ...

  • [贝聊科技]异步流程控制

    单线程与异步 Javascript是单线程运行、支持异步机制的语言。进入正题之前,我们有必要先理解这种运行方式。 ...

  • JavaScript异步编程

    目录 JavaScript采用单线程模式工作的原因 单线程的优势和弊端 同步模式与异步模式同步模式异步模式同步模式...

  • 同步与异步、事件循环与消息队列、微任务与宏任务

    JavaScript 是单线程、异步、非阻塞、解释型脚本语言。 单线程与多线程 单线程语言:JavaScript ...

  • 彻底理清JavaScript的单线程,异步,Event Loop

    JavaScript的三座大山:单线程与异步,原型与原型链(继承),作用域和闭包。接下来就其中的单线程与异步,和延...

  • 异步与单线程

    单线程:一次只能做一件事情 上面程序的执行顺序如下: 执行第一行,打印10 执行setTimeout时,这里面的函...

  • 3.1KOA Promise 语法

    Promise 语法 同步与异步 我们知道,JavaScript的执行环境是「单线程」。所谓单线程,是指JS引擎中...

  • Node 简介

    Node的特点 Node的特点有:异步I/O、事件与回调函数、单线程、跨平台 异步I/O 在Node中,异步I/O...

  • Event Loop of Javascript

    js是单线程的?与异步矛盾嘛? 不矛盾,因为js执行是单线程的,但是浏览器是多线程的。其中的异步是靠浏览器是开新的...

网友评论

      本文标题:异步与单线程

      本文链接:https://www.haomeiwen.com/subject/lslejftx.html