首页 > 其他 > 详细

浏览器处理同步异步机制

时间:2019-04-01 22:17:23      阅读:150      评论:0      收藏:0      [点我收藏+]

首先浏览器是多线程的,JS是单线程的(浏览器只给js分配了一个线程)

单线程的特点就是一次只能处理一件事情。(后一个任务需要等待前一个任务的执行,这就可能出现长时间的等待)

JS在单线程中实现异步机制主要依赖浏览器的任务队列

任务队列分为主任务队列,等待任务队列

在主任务队列自上而下执行的时候,如果遇到一个异步操作任务,不会立即执行而是把它放到等待任务队列中去排队

当主任务队列完成后才会到等待任务队列中进行查找(主任务队列完不成,不管等待任务队列是否到达时间,都不做处理,会继续等待主任务队列完成)

等待任务队列中的内容,先达到条件的会被重新放到主任务队列中执行,然后接着去等待任务队列中查找

这就是因为js是单线程的。只能处理一件事情~~

单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等待

浏览器处理同步异步机制

原文:https://www.cnblogs.com/theblogs/p/10639190.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!