1、什么是线程?
线程是CPU调度的最小单位,同时也是进程的最小组成单位。
2、什么是单线程?
进程是可以包含多个线程的,但是如果一个进程上只有一个线程,那么就叫单线程。
3、为什么JS是单线程?
交互方式决定单线程模式。JS被设计用来实现用户与浏览器的交互,包括dom的增删改,如果使用多线程模式,会带来很多复杂的同步问题。
总结:为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征。为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质。