首页前端开发正文

为什么JavaScript是单线程的?

朱绪2020-10-162192JavaScript

为什么JavaScript是单线程的?针对这个问题,小编来发表一下看法。

其实,所有的程序都应该是单线程的,原因在于,多线程会形成死锁和程序执行错误——异步调用不了不支持异步的函数,可能会得到错误的执行结果。

不少语言为了规避这种错误,干脆抛出异常,例如Java。

像C++、Java这些所谓的支持多线程的语言,本质上是由程序员自己来协调多线程问题,总之最终业务都是在单线程处理的。所谓支持多线程的函数,本质就是它内部已经做了处理,最终可能造成多线程访问错误的地方都自动内部使用单线程处理了。

从这个角度来看,js的单线程反倒是最合理的,因为你完全不用去考虑多线程的问题。而js内部当然不是单线程的。

这就好比快餐,都是做熟了的,要不然怎么吃?我们可以去菜场买原生的材料,但是你最终吃的时候还是要做熟了的呀。

快餐