码迷,mamicode.com
首页 > 其他好文 > 详细

异步概念

时间:2019-12-15 23:57:37      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:oop   回调函数   执行流程   console   迅雷   完成   实现   on()   mil   

开个QQ,开了一个进程;开了迅雷,开了一个进程。在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。所以运行某个软件,相当于开了一个进程。在这个软件运行的过程里(在这个进程里),多个工作支撑的完成QQ的运行,那么这“多个工作”分别有一个线程。所以一个进程管着多个线程。

同步:任务是一个接着一个执行的,上一个任务执行完成后才能执行下一个任务。即在同一时间只能做一件事。这种one by one的动作就是同步。

异步:是js单线程这种语言解决多任务的一种方法,将耗时的操作设为异步,先交给浏览器相关的线程,来实现这部分耗时的工作。而主线程继续依次执行任务(one by one同步)不阻塞代码,后续通过通知的方式来实现异步任务的其他代码执行(当主线程的所有代码都执行完成后)

进程:简单理解为一个cpu在单一时间运行一个进程,其他进程处于非运行状态(一个进程理解为一个工厂的一个车间)(单个CPU一次只能运行一个任务。)

线程:一个进程可包含多个线程(.一个车间里,可以有很多工人。他们协同完成一个任务)

js是单线程异步非阻塞语言。

示例:

console.log("start");
setTimeout(function(){
    console.log("timeout");
},5000);
console.log("end");
//执行结果如下
start
end
//等待5秒后
timeout

异步执行流程图:执行栈+功能性线程(事件线程,事间线程,ajax线程)+任务队列(存放异步的回调函数)+事件循环loop:

异步概念

标签:oop   回调函数   执行流程   console   迅雷   完成   实现   on()   mil   

原文地址:https://www.cnblogs.com/yt0817/p/12046567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!