coder-Tom

一个喜欢代码, 音乐,读书, 跑步, 记录生活的程序员

0%

javascript是单线程吗?

因为说JavaScript是单线程语言, 我被嘲笑了

那JavaScript到底是不是单线程,我们来一探究竟。

js到底是不是单线程?

虽然“ Javascript 是单线程语言”是众所周知的事实,但对于这一点总是存在一些疑问。如果 Javascript 是单线程的,它如何支持异步调用?为什么基于 javascript 运行时的 Node.js 是非阻塞的?这是我想到的一些有趣的问题。我决定在这里捕捉我的思路,将理解 Javascript 基本原理所涉及的各个点连接起来。

Q: 单线程是什么意思?

A: 只有一个线程(进程)可用于执行指令

Q: Javascript 是单线程的吗?

A: 是的,Javascript“运行时”是单线程的。它执行 javascript 程序。它维护一个单独的堆栈,在这个堆栈中,指令被推送以控制执行的顺序,然后弹出以执行。以及存储对象引用和收集垃圾的堆空间。

所以说, JavaScript是单线程的,同一时刻只能执行特定的任务, 这句话是错误的, 严格来说的话, 应该这样说, JavaScript在运行的时候, 也就是runtime是单线程的, 单线程是用来形容运行环境的, 不是用来形容这门语言的