浏览器中那个线程是主线程,是怎样切换线程的?
JavaScript的单线程特点,业内一直有个这样的原则:任何动作都不要长时间霸占主线程,如果迟迟不归还主线程,那么在这期间浏览器就没法对其他输入作出响应。
浏览器内部有多个线程(事件处理,定时器等等),其中js执行线程和ui渲染线程互斥,针对上面的一段话,那么浏览器一个进程内是不是那个线程执行就是那个主线程,但是js事件循环模拟异步过程中,其他线程也参与进来,是和js线程并行(除了ui渲染线程),那谁是主线程。
js执行一个同步耗时任务会霸占主线程,任务执行完毕,释放主线程,交给ui线程渲染(变成主线程),能否这样理解?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
主线程一般就指 UI 线程。这点跟 Native 客户端开发(Windows、Linux、iOS、Android 啥都行)是一样的。
JS 执行时不是“霸占”主线程,而是“挂起”主线程,如果时间过长,看上去就是页面卡死了。