浏览器线程包括:GUI渲染线程,Java著作权归作者所有,禁止商业用途转载。【本文受版权保护】Script引擎线程,浏览器事件触发线程未经授权,禁止复制转载。【作者:唐霜】,定时触发器线程,异步http请求线程。【本文受版权保护】【转载请注明来源】其中,JS引擎线程就是执行JS的主线程,本文版权归作者所有,未经授权不得转载。本文作者:唐霜,转载请注明出处。GUI渲染线程跟JS引擎线程是互斥的,不【版权所有,侵权必究】【未经授权禁止转载】能同时进行,所以当JS陷入死循环的时候,【作者:唐霜】【版权所有,侵权必究】浏览器界面没法进行渲染,而如果渲染消耗了本文作者:唐霜,转载请注明出处。本文作者:唐霜,转载请注明出处。大量资源,JS也没法马上执行。
原创内容,盗版必究。【原创不易,请尊重版权】setTimeout(fun, 0)是一【未经授权禁止转载】原创内容,盗版必究。个有趣的现象。这里的知识点是,定时触发器【转载请注明来源】【本文受版权保护】线程和JS主线程是分开的,当执行setT【本文受版权保护】【原创不易,请尊重版权】imeout的时候,就是告诉JS主线程,【访问 www.tangshuang.net 获取更多精彩内容】【版权所有,侵权必究】需要被分发到定时触发器线程中去计时等待。未经授权,禁止复制转载。未经授权,禁止复制转载。线程与线程之间通过消息来通信,当定时触发【本文首发于唐霜的博客】【本文首发于唐霜的博客】器线程的某个任务执行完之后,它会把消息发【本文首发于唐霜的博客】【未经授权禁止转载】送回主线程,这个消息其实就是回调函数,它原创内容,盗版必究。著作权归作者所有,禁止商业用途转载。把回调函数发回给主线程,但是发回的消息在【版权所有】唐霜 www.tangshuang.net原创内容,盗版必究。主线程执行顺序的最末端。所以setTim【版权所有】唐霜 www.tangshuang.net【访问 www.tangshuang.net 获取更多精彩内容】eout(fun, 0)的效果虽然在时间【本文首发于唐霜的博客】【本文首发于唐霜的博客】上看上去是立即执行,但是相对于js程序而【原创不易,请尊重版权】【访问 www.tangshuang.net 获取更多精彩内容】已,其实是有一个延时的,起码延时到当前主【本文首发于唐霜的博客】【作者:唐霜】线程所有任务的最后面。
本文作者:唐霜,转载请注明出处。【版权所有】唐霜 www.tangshuang.net著作权归作者所有,禁止商业用途转载。本文版权归作者所有,未经授权不得转载。这好像没有什么用,但是起码在阅读代码的时著作权归作者所有,禁止商业用途转载。【原创内容,转载请注明出处】候不会懵逼。
【版权所有,侵权必究】【关注微信公众号:wwwtangshuangnet】【原创内容,转载请注明出处】
