javascript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。
这是因为javascript这门脚本语言诞生的使命所致一javascript是为处理页面中用户的交互,以及操作DOM而诞生的。比如我们对某个DOM元素进行添加和删除操作,不能同时进行。应该先进行添加,之再删除.所以js语言也只能是单线程语言。
如果js执行的时间过长(比如一个十分钟的定时器),这样就会造成页面的渲染不连贯,导致页面渲染加载阻塞的感觉,这就需要另外办法了。
为了解决这个问题,利用多核cpu的计算能力,html5提出webworker标准,允许javascipt脚本创建多个线程。于是,出现了同步和异步。