线程



1.GUI渲染线程(一个)

2.JS引擎线程(一个)

3.事件触发线程

4.定时器触发线程(多个)

5.异步http请求线程(多个)

线程执行

页面加载时

GUI渲染引擎和JS执行引擎互斥,当GUI渲染引擎解析html处理到script标签,会立即挂起解析html的任务,然后开始解析js代码,这里就是执行一个宏任务。直到所有这个宏任务执行完成后,继续执行html解析渲染

JS是单线程指的是执行引擎是单线程

宏任务微任务

宏任务是由宿主发起的,而微任务由JavaScript自身发起。

Event loop

JS是基于事件驱动的,其需要一种事件循环机制和来进行线程的配合

js执行引擎(主线程)在空闲时判断是否有未执行的微任务,有则一个个将微任务中的回调函数放到主线程中执行,直到微任务队列清空;微队列清空后判断宏任务队列

https://zhuanlan.zhihu.com/p/165950721?utm_source=wechat_session&utm_medium=social&utm_oi=930814167984668672&utm_campaign=shareopn

最新文章

  1. TotalCommander 之 日常使用技巧
  2. Android Studio1.4.x JNI开发基础 - 简单实例
  3. wifi强度数据采集器(android)
  4. Java基础知识学习(七)
  5. Monyer's Game 0~5关过关方法
  6. Css - Table.css
  7. angularJs的工具方法
  8. POJ 1088 滑雪【记忆化搜索】
  9. Oracle 分析函数 "ORA-30485: 在窗口说明中丢失 ORDER BY 表达式"
  10. ftp 匿名访问设置
  11. linux中内核的一个不错的参数somaxconn
  12. MyBatis insert后返回自增字段的值
  13. HDU 1076 An Easy Task
  14. Winform ComBox模糊查询
  15. .NET Core中的数据保护组件
  16. thinkphp5.0验证的封装
  17. CSS如何让不相等的字符上下对齐
  18. 关于Maven打包Java Web项目以及热部署插件Jrebel的使用
  19. ECC
  20. 摆脱定时任务的cron表达式的困扰

热门文章

  1. 玩转web3第二篇——Web3UI Kit
  2. 继承QAbstractTableModel QStyledItemDelegate实现自定义表格,添加进度条和选中框。
  3. Quartz.Net 官方教程 Tutorial 1/3(Jobs 和 Trigger)
  4. FAQ Selenium中提示can not connect to the service chromedriver 的解决方法
  5. drf-drf请求、响应、基于GenericAPIView+5个视图扩展类
  6. Windows 10 企业版 LSTC 激活秘钥及方法
  7. ros_navigation案列操作流程
  8. brew基本操作指南
  9. JZOJ 1082. 【GDOI2005】选址
  10. LG P2839 [国家集训队]middle