node-编程基础-事件循环/消息队列/作用队列-06

介绍

时间循环是node最重要的知识点之一,因为node是单线程的,但是能够做到异步非阻塞IO,就是因为有事件循环

node特点:

node是单线程的,代码运行在单线程上,每次只处理一件事,正式因为单线程,所以node编程并不需要考虑太多的线程并发的问题,秩序要编辑代码并注意不要出现阻塞现成的事情就可以。

阻塞事件循环

任何需要花费大量时间才能将控制权交还该事件循环的js代码,都会阻塞页面中任何js代码的执行,升值阻塞UI

为了解决这种问题,所以,在node中使用了大量的回调函数

调用堆栈

调用堆栈是一个LIFO队列,后进先出

事件循环会不断的调用堆栈,检查以看是否需要运行任何元素;当执行时,它会将找到的所有函数调用添加到调用堆栈中,并按顺序执行每个函数。每次迭代中的事件循环都会查看调用堆栈中是否有东西并执行它直到调用堆栈为空:

const bar = () => console.log('bar')

const baz = () => console.log('baz')

const foo = () => {
  console.log('foo')
  setTimeout(bar, 0)
  baz()
}

foo()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值