进程:使用不同的内存区,不会直接相互影响; 线程:使用同一块内存区,可以直接相互影响;
浏览器同时有多个不同任务的进程,其中每个页面为一个进程
一个页面(浏览器的渲染进程)有多个线程:gui渲染线程,js引擎线程,事件触发线程,定时触发器线程,异步http请求线程
任务循环机制:
主线程(js引擎线程)运行时会产生执行栈(栈中任务为同步任务),当同步任务解决时,会去查看事件引擎中的任务队列(任务队列中任务为异步任务),如果有,则把它添加到主线程中执行(变为同步任务)
执行同步任务时,可能会使用ajax,setTimeout,onclick等东西,在满足条件的情况下(如setTimeout时间到了)就会产生一个任务存放在事件引擎的任务队列里。这些内容差不多就是任务循环机制。(更细一点的还有宏任务和微任务的区别)
链接:https://juejin.im/post/5dd0d73c6fb9a0203b7fc4a1(浏览器进程、JS事件循环机制、宏任务和微任务)