javascript异步编程之单线程模式

众所周知,目前主流的javascript的环境都是以单线程的模式去执行js代码

一、采用单线程模式工作的原因?

这与最早的设计初衷有关,最开始javascript就是一门运行在浏览器端的脚本语言,它的目的是为了用来去实现页面上的动态交互,而实现页面交互的核心就是dom操作,那这也就决定了它必须使用单线程模型,否则就会出现很复杂的线程同步问题;我们可以试想一下,假定我们在JavaScript中同时有多个线程一起工作,那其中一个线程修改了某一个dom元素,而另外一个线程同时又删除了这个元素,那此使我们的浏览器就无法明确该以哪个线程的工作结果为准,所以说为了避免这种线程同步的问题,从一开始JavaScript呢就被设计成了单线程模式工作,那这样就成为了这门语言最核心的特性之一;注意,这里所说的单线程指的是在js执行环境中负责执行代码的线程只有一个。

二、单线程模式的缺点

可以想象成,在内部只有一个人按照我们的代码执行任务,如果有多个任务的话就必须要排队,然后一个一个依次去完成,这种模式最大的优点就是更安全,更简单。

但是缺点也同样很明显,如果遇到某个特别耗时的任务,那后面的这些任务都必须要排队等待这个任务的结束,这也就会导致,我们整个程序的执行会被拖延,出现假死的情况

猜你喜欢

转载自blog.csdn.net/weixin_45313351/article/details/124852333
今日推荐