当前位置:首页 > 文章 > 正文内容

javascript编程单线程之同步模式

廖万里3年前 (2022-10-27)文章12993

主流的js 环境都是单线程吗模式执行js 代码, js采用为单线程的原因与最开始设计初衷有关,最早是运行在浏览器端的脚本语言,目的是为了实现页面上的动态交互,实现页面交互的核心就是dom操作,这也就决定了js必须使用单线程的模式来处理,不然就会造成严重的线程同步问题。如果js多个线程同时修改dom元素,此时浏览器就无法明确以那个线程的结果为准,为了避免这种线程同步问题,所以从一开始js就被设置成了单线程模式工作。这里所说的单线程指的是javascript执行环境中负责执行代码的线程只有一个

可以想象成只有一个人来执行任务,一个人一次只能执行一个任务,如果有多个任务就需要排队依次去完成。这种模式最大的优点是更安全更简单,缺点也很明显,遇到某一个特别耗时的任务后面的任务就需要等这个任务的结束,这也就导致整个程序的执行的拖延,出现假死的情况。

  • 优点:更安全、更简单

  • 耗时任务会出现程序假死的情况

为了结局耗时任务的问题,javscript 把 任务的执行分了两种模式,分别是

  • 同步模式(Synchoronous)

  • 异步模式(Asynchronous)

javascript编程单线程之同步模式

同步模式Synchoronous

代码依次执行,后一个任务要等待前一个任务执行完成,同步执行比较简单,代码的执行顺序就是代码的顺序。单线程大部分都是同步模式。

Console 是输出的打印,Call stack 是执行栈

开始执行 js 会把我们的整体的代码加载进来并放到一个匿名函数里面执行,然后逐行开始执行,

第一行 执行会把 console.log('global begin') 压入调用栈中,控制台打印global begin 执行结束,弹出调用栈

接下来是两个函数的声明,函数的声明不会产生调用所以接着往下执行

接下来是一个foo 函数的调用,会把 foo压入调用栈,foo 函数打印了一个消息,接着执行了 bar 函数,bar 函数也会被放入执行栈中,bar函数执行过程中又打印了一次,bar执行完毕弹出调用栈,紧接着 foo函数也执行结束,弹出调用栈

最后打印了一个消息,也是一样的压栈,整体代码执行完,执行栈就会被清空掉

javascript编程单线程之同步模式

这种排队执行的机制下某行代码执行时间过长,后面的任务就会被延迟。我们把这种延迟称为阻塞,这种阻塞对于用户而言会有页面卡顿或者叫卡死,所以需要异步模式来解决程序中无法避免的耗时操作,比如ajax操作,或者nodejs中的大文件读写


本文链接:https://www.kkkliao.cn/?id=162 转载需授权!

分享到:

版权声明:本文由廖万里的博客发布,如需转载请注明出处。


“javascript编程单线程之同步模式” 的相关文章

“双11”,如何守住钱袋子?

“双11”,如何守住钱袋子?

“双十一”快到了,“剁手”的大斧已高高举起。购物车收藏83件,有的商品开启定价预售模式小姐姐的化妆品要不少钱呀,也不知比平时便宜多少最近几天,同事们都在热议“双十一”。 今年的“双十一”跟以往相比有新变化,比如,缩短预售时间、扩容购物车、差价一键退,不少平台还从晚上8点开始销售等。自从2009年开始...

外媒惊呼,继智能手机之后,中国在这一领域强势崛起!

外媒惊呼,继智能手机之后,中国在这一领域强势崛起!

作为一个80后,我清楚地记得,在功能手机的时代,中国的手机厂商一个能打的都没有,很多人为此努力过,但最后都折戟沉沙,黯淡收场。彼时的中国手机市场完全是三星、诺基亚、摩托罗拉等外资品牌的市场,仅存的中国手机厂商只能在夹缝中生存,靠生产杂牌手机苟延残喘。那时候我们多么希望能崛起一个自主品牌、民族品牌来收...

英国“最富首相”苏纳克如何一路开挂?

英国“最富首相”苏纳克如何一路开挂?

当地时间10月24日下午两点,是英国保守党在下议院党团1922委员会设定的提交新任保守党党首选举提名的截止时间。在成功获得了197名保守党议员提名,且两位对手约翰逊和莫当特先后宣布退选后,前任财政大臣里希·苏纳克成为唯一符合“入闸”条件的党首候选人,按程序自动当选。随后,苏纳克在保守党中央党部发表了...

开始“反扑”了?中国院士正式宣布,厉害的不只有华为

开始“反扑”了?中国院士正式宣布,厉害的不只有华为

随着中国的这些年的不断发展,中国在各方都取得了很大的成就,现在的中国已经发生了翻天覆地的变化。在生活上。我们进入了电商时代,进入了移动支付时代;在科技上,我们进入了智能互联网时代,即将迎来的是全新的5G时代,还有很多很多中国制造都是值得我们骄傲的。特别值得提及的就是,现在中国制造已经成为了我们的一个...

美媒:ASML开始被中企无情地“打脸”了

美媒:ASML开始被中企无情地“打脸”了

点击关注,每天精彩不断!导读:美媒:ASML开始被中企无情的“打脸”了!自从我国华为公司被打压以后,很多科技企业都意识到了自主研发和生产半导体芯片的重要性;而想要生产芯片并不是一件容易的事情;作为21世纪最伟大的发明之一,半导体芯片如今在整个科技领域都起着至关重要的作用,虽然说一个小小的芯片看上去只...

一个时代终于结束了,电商行业被改写

一个时代终于结束了,电商行业被改写

如果你仔细观察近两年电商行业的新变化,你会明显地感觉到,时代一次又一次被改写。淘宝为什么被拼多多赶超了?抖音是娱乐平台,却为什么突然改做电商了?因为一个时代结束了。众所周知,传统的电商是货架电商。货架店上的本质就是把产品上到店里,然后通过搜索引擎优化或者付费推广的模式,带来流量,然后通过促销的方法,...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。