js单线程,同一时间只能做一件事 。js的单线程 主要与它的用途有关。作为浏览器脚本语言,js的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。如果js同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除这个节点,浏览器不知道以哪个为准。为了避免复杂性,一诞生,js就是单线程,是这门语言的核心特征。
为了利用多核CPU的计算能力,html5提出WebWorker标准,允许js脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM,所以这个标准并没有改变js单线程的本质。