在 渡一袁老师那看到的知识点,感觉讲的很清晰怕以后忘记了就存下来。
js是一门单线程语言,这是因为他运行在浏览器的渲染主线程中,而渲染之线程只有一个,而渲染主线程承担着诸多的工作,渲染页面。执行。JS都在其中运行。如果使用同步的方式,就极有可能导致主线程产生阻塞。从而使消息队列中的很多其他任务无法执行,这样一来,一方面导致繁忙的主线程白白消耗时间,另一方面导致页面无法及时工薪,给用户造成卡死的现象。
所以浏览器采用异步的方式来避免,具体做法是当某些任务发生时,比如计时器。网络,事件监听,主线程将任务交给其他线程去处理,自己立即执行其他任务。当其他线程完成时,将事先传递的回调函数包装成一个任务加入消息队列末尾,等待主线程调度执行。
在这种异步模式下,浏览器用不阻塞,从而最大限度保证了单线程的流畅运行