dadaxindeyuanzi

前言

本文从JS是单线程开始,到JS为了提高效率,使用异步,到JS如何实现异步(做法是主线程外另开工作线程和任务队列,他们之间是如何工作的——事件循环),再到浏览器是如何配合JS执行异
步(其他浏览器线程)。最后提到了一个任务队列的优先级问题。
涉及的需要重点理解的概念有主线程、执行栈、异步、异步任务、任务队列、事件循环等。

 

一、JS是单线程。

所谓单线程,是指在JS引擎中负责解释和执行JavaScript代码的线程只有一个。不妨叫它主线程

选择单线程的原因之一是JS要操作DOM,如果多线程可能造成执行混乱。经典栗子来了,有要删除节点的函数,有要操作节点的。万一多线程执行顺序乱了就坏了。

 

二、JS的异步

单线程使得JS引擎只能一个任务结束再执行下一个,如果某任务时间较长,就会发生阻塞。为了解决这个问题。JS也使用了异步编程。

分类:

技术点:

相关文章:

  • 2021-06-03
  • 2022-01-30
  • 2021-05-17
  • 2021-06-10
  • 2022-12-23
  • 2021-04-01
  • 2021-09-12
猜你喜欢
  • 2021-11-30
  • 2021-11-03
  • 2022-12-23
相关资源
相似解决方案