前因后果都是浏览器相关的
浏览器的进程模型
1、进程
程序运行需要内存空间,这个空间就是进程
每个应用至少有一个进程,进程之间独立,要通信需要双方同意。
2、线程
一个进程启动后,自动创建一个线程来运行代码,这个线程叫主线程。如果主线程结束,进程就结束了 。如果主线程忙不过来,它就会启动更多的线程来帮忙
浏览器是一个多线程多进程的程序
主要是浏览器进程(主)、网络进程、渲染进程、cpu等进程
渲染进程
启动后会开启一个主线程,去执行页面渲染,css、js、html 事件循环发生在 渲染主线程
同步流程
异步(永不阻塞)
如何理解js的异步
解释:为啥同步可能会阻塞:以为如果都是同步代码的话,不会阻塞。如果包含异步代码比如,setTimeout时,会造成阻塞。
js为何会阻碍渲染 渲染和执行js都在渲染主线程上执行
任务不存在优先级,在消息队列里面:先进先出
但消息队列有优先级
面试题(事件循环的回答)
单线程是异步产生的原因 事件循环是异步的实现方式