返回博客

JS 为什么是单线程的

JavaScript 为什么是单线程的?本文探讨了 JavaScript 单线程的本质原因,以及由此带来的优势和挑战,并延伸讨论了浏览器多进程、Node.js 多线程和多进程等相关概念。

Mt.r
|

看这两篇文章就够了

这主要和 js 的用途有关,js 是作为浏览器的脚本语言,主要是实现用户与浏览器的交互,以及操作 dom;这决定了它只能是单线程,否则会带来很复杂的同步问题。 举个例子:如果 js 被设计了多线程,如果有一个线程要修改一个 dom 元素,另一个线程要删除这个 dom 元素,此时浏览器就会一脸茫然,不知所措。所以,为了避免复杂性,从一诞生,JavaScript 就是单线程,这已经成了这门语言的核心特征,将来也不会改变

思考及衍生问题

  • 什么是线程
  • 什么是进程
  • JS 是单线程的吗
  • 浏览器的进程,单进程还是多进程
  • NodeJS 是单线程还是多线程,NodeJS 多进程你了解吗
  • js 是单线程的,但是为什么要设计成单线程
  • 可以在浏览器中实现多进程吗
  • 任务队列
  • 堆和栈