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

javascript编程单线程之同步模式

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

主流的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编程单线程之同步模式” 的相关文章

美设备大厂接连表态,反转出现了,外媒:华为将“打”出和平

美设备大厂接连表态,反转出现了,外媒:华为将“打”出和平

华为5G的横空出世,一举打破了美国数十年的通信霸权,也首次将中国通信带到了全球最顶端的位置,堪称是中国人的骄傲。然而,这却引起了老美的忌惮,它为了巩固自己的科技霸权地位,近些年频繁修改芯片规则,妄图通过断供来放倒华为。大家都知道,技术封锁是美帝霸凌主义惯用的手段,且屡试不爽,日本东芝和法国阿尔斯通的...

人的寿命?科学家找到了答案,竟和走路速度有关?

人的寿命?科学家找到了答案,竟和走路速度有关?

关于走路每个人都有不同的说法,有些人觉得适度走路能走掉很多疾病,有些人觉得坚持走路会把膝盖走坏,有些人在走路中获得了益处,但有些人却走出了问题。还有人说走路和寿命之间存在联系,那么这种说法是否准确呢?不妨让我们一起来看看科学家的答案。人的寿命竟然跟走路速度有关?科学家找到答案,你走路够快吗?美国匹兹...

6G专利申请量比拼:美国占比35.2%,日本占比9.9%,中国排第几?

6G专利申请量比拼:美国占比35.2%,日本占比9.9%,中国排第几?

5G对于现在的人们来说已经不是什么神秘的存在,很多国家通过近些年的研究都已经逐步掌握了5G技术。不过就5G技术发展的成熟度、设备完善程度以及信号铺设范围来说,我国都是当之无愧的世界第一。但是随着科技技术的不断发展,对于6G的技术研发也被提上日程。不少国家都开始攻克6G技术,并取得了各项专利。根据有关...

这是一篇狗屁不通文章生成的文章

莎士比亚说过一句富有哲理的话,人的一生是短的,但如果卑劣地过这一生,就太长了。这启发了我, 所谓匿名信一封云来信网赚赚钱项目投资SEO百度专业收录关键词中国文章,关键是匿名信一封云来信网赚赚钱项目投资SEO百度专业收录关键词中国文章需要如何写。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。...

2022年浏览器行业前景:手机浏览器产品趋于智能化

2022年浏览器行业前景:手机浏览器产品趋于智能化

我们遇到不懂的问题,第一反应可能就是用浏览器搜索一下答案,就可以找到自己想了解的东西。我国的手机浏览器已经逐渐走向成熟,浏览器产品趋于智能化,各大手机浏览器竞争激烈。国产手机浏览器企业如果想要在市场上占有一席之位,不仅要在技术上下功夫,也要在商业模式上创新。以下是对2022年手机浏览器行业前景分析。...

内容为王!京东流量让利,成者科技(CZUR)玩转内容电商营销

[SEO教程]内容为王!京东流量让利,成者科技(CZUR)玩转内容电商营销  0 2018-08-01 02:00:32  2018年最火项目 电销机器人等你加盟  在近一年的时间里,内容电商可谓是火得一塌糊涂。内容电商是以互联网科技为依托,能将产品体验与文化...

发表评论

访客

看不清,换一张

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