JS中并发模型,堆 ,栈,队列

.js并发模型
JavaScript 有一个基于事件循环的并发模型,事件循环负责执行代码、收集和处理事件以及执行队列中的子任
务,结合异步操作实现了类似多线程的并发效果,使得JavaScript能够在单线程环境中高效地处理多个任务‌

可视化描述
在这里插入图片描述

.栈
	函数调用生成一个由若干帧组成的栈,而这个函数中的args以及局部变量,也就是这个栈的帧,当函数被调
用完并返回时,这个函数就会被从栈中抽离出去,如果在调用函数的时候,该函数中还有其他函数,那么这个被
调用的函数也会被取出来存放于栈中,组成一个新的栈,而且存放在父函数的上面,被先执行,而这个函数执行
并返回后,也是会被抽离出去	
三.堆
  堆是用来表示一大块内存区域的计算机术语,对象被存放在堆中
四.队列
    一个js在运行是包含了一个待处理消息的消息队列,而每一个消息队列都关联着一个用以处理这个消息的回
调函数。事件循环中,运行时回从最先进入队列的消息开始处理,处理这个消息也就是处理这个消息对应的栈
帧,函数的处理会一直进行到执行栈再次为空为止;被处理完的消息会被移出队列,然后事件循环将会处理队列
中的下一个消息。
   这里需要注意的是setTimeOut这个函数,它有两个参数,回调和等待执行的时间,而这个是间不一定是我们
 传入的这个时间,如果在它的执行之前还有消息在执行,那么传入的这个时间属于最小时间,还是需要等待上一
 个消息执行完。即使传入的时间是0,也会等待..添加消息
	在浏览器里,每当一个事件发生并且有一个事件监听器绑定在该事件上时,一个消息就会被添加进消息队
列。如果没有事件监听器,这个事件将会丢失。所以当一个带有点击事件处理器的元素被点击时,就会像其他事
件一样产生一个类似的消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值