简单说下异步执行原理。

计算机程序执行分为同步执行,和异步执行:

  所谓的异步执行,是一种特殊的程序的执行方式,常见的异步程序有

     定时器(setInterval),延时器(setTimeou),各种事件的绑定(onclick......),ajax请求

  异步程序的执行过程

     1.从第一行代码开始执行

     2.同步程序开始执行

     3.遇到异步程序了,暂时不执行,将异步程序暂时存储在“异步池”中

     4.所有的同步程序执行完毕

     5.开始执行“异步池”中的异步程序

       若有设定了时间的程序,就会先执行到点了的程序

       若有设定的时间是相同的程序,则依照书写顺序执行

举例说明:

<script>  

  setInterval(function(){ console.log(‘我是异步执行的程序1‘); } , 2000);

  setInterval(function(){ console.log(‘我是异步执行的程序2‘); } , 1000);

   console.log(‘我是同步执行的程序‘)

</script>

  结果依次是:我是同步执行的程序

        我是异步执行的程序2

        我是异步执行的程序1

  

原文地址:https://www.cnblogs.com/haoyd/p/12637885.html

时间: 2024-10-01 04:27:02

简单说下异步执行原理。的相关文章

简单科普下hosts文件原理与制作

简单科普下hosts文件原理与制作 hosts文件是一个用于储存计算机网络中各节点信息的计算机文件.这个文件负责将主机名映射到相应的IP地址.hosts文件通常用于补充或取代网络中DNS的功能.和DNS不同的是,计算机的用户可以直接对hosts文件进行控制. 为了方便用户记忆,我们将IP变成一个个的域名来输入到浏览器进行访问.而这使得访问网站时要先将其域名解析成 IP .DNS (Domain Name Server) 的作用就是进行 IP 解析,把域名对应到 IP.在 Great FireWa

js异步执行原理

我们都知道js是一个单线程的语言,所以没办法同时执行俩个进程.所以我们就会用到异步. 异步的形式有哪些那,es5的回调函数.es6的promis等 异步的运行原理我们可以先看下面这段代码 应该很多人都知道这个打印的值是10个10. 也有知道当我们执行的for循环的时候,他会把for循环执行完成以后再去执行setTimeout,在执行setTimeout的时候这是时候的i已经变成了10所以就打印10个10. 但是这里面的执行过程是这样的.我们用一个图来做解释 图画的有点丑啊,大致的执行流程就是这样

ASP.NET MVC下的异步Action的定义和执行原理

Visual Studio提供的Controller创建向导默认为我们创建一个继承自抽象类Controller的Controller类型,这样的Controller只能定义同步Action方法.如果我们需要定义异步Action方法,必须继承抽象类AsyncController.这篇问你讲述两种不同的异步Action的定义方法和底层执行原理.[本文已经同步到<How ASP.NET MVC Works?>中] 目录 一.基于线程池的请求处理 二.两种异步Action方法的定义     XxxAs

ASP.NET MVC下的异步Action的定义和执行原理[转]

http://www.cnblogs.com/artech/archive/2012/06/20/async-action-in-mvc.html Visual Studio提供的Controller创建向导默认为我们创建一个继承自抽象类Controller的Controller类型,这样的Controller只能定义同步Action方法.如果我们需要定义异步Action方法,必须继承抽象类AsyncController.这篇问你讲述两种不同的异步Action的定义方法和底层执行原理.[本文已经

通过一个简单闭包,弄懂JS执行原理

<script> function f1()            {                var age = 18; function f2()                {                    alert('我今年:'+age+'岁');                } return f2;            }                var func3 = f1(); func3();</script>            闭包

Jquery ajax 绑定multiselect多选下拉选项,同时异步执行返回值

Jquery ajax 绑定multiselect多选下拉选项,同时异步执行获取返回值 1 function load(mslt_employees,belongto,mark) {//传入$(#ID) 2 var jsondata = JSON.stringify({ belongto: 1, username: username }); 3 var emp = null; 4 jQuery.ajax({ 5 type: 'POST', 6 url: "../tools/employees_a

同步程序与异步程序执行原理

JavaScript中计算机程序分为同步执行与异步执行.同步执行:就是正常的计算机程序的执行, 顺序控制语句:从上到下,从左到右 循环控制语句:for,while,do...while,for...in,forEah() 分支控制语句:if,switch异步执行:是一种特殊的程序执行程序.setInterval,setTimeout,事件的绑定:onclick.ajex请求.所谓的异步程序的执行: 1:所有的异步程序都是在同步程序结束之后再执行. 2:异步程序的执行,如果时间相同,看代码的先后顺

ajax同步、异步执行简单理解与证明

此理解范例代码来自前几篇随笔! 重在实际操作练习一下!!!!! 在$.ajax()中我们可以常常看到async,这就是来指定ajax同步异步的,需要记忆一下: 记忆方法: sync英语中的意思是:“同步”.“同步的”.“同步处理” 前面加个“a”,构成async英文中的意思是:“异步” 再者给他指定true和false那就容易理解了: “async:true” 意思是:“异步” “async:false” 意思是:“同步” 分析async作用: 当“async:true”时,也就是异步执行aja

Javascript引擎单线程机制及setTimeout执行原理说明

setTimeout用法在实际项目中还是会时常遇到.比如浏览器会聪明的等到一个函数堆栈结束后才改变DOM,如果再这个函数堆栈中把页面背景先从白色设为红色,再设回白色,那么浏览器会认为DOM没有发生任何改变而忽略这两句话,因此我们可以通过setTimeout把“设回白色”函数加入下一个堆栈,那么就可以确保背景颜色发生过改变了(虽然速度很快可能无法被察觉). 总之,setTimeout增加了Javascript函数调用的灵活性,为函数执行顺序的调度提供极大便利. 然后,我们从基础的层面来看看:理解J