node异步机制

核心:事件循环

事件循环时node自身的执行模型,进程启动时,node创建一个类似于while(true)的循环,简称Tick,每次循环时若有事件就取出事件及其回调函数并执行,然后进入下一次循环,若没有事件就退出循环。

观察者

每个事件都有其对应的观察者对象,观察值将事件进行分类,每次Tick时向观察者对象询问是否有事件待处理,事件循环就是从观察者那里取出事件并执行。

中间产物:请求对象

从JavaScript层传入的方法和参数都封装在这个请求对象中,请求对象将包装后将其推入线程池中等待,当异步操作完成时,请求对象将异步操作的结果返回给事件对应的回调函数并执行,退出线程池。

JavaScript是单线程的,但是node本身是多线程的,只不过其运行在JavaScript之上而已,其IO线程占用的CPU较少,node中所有异步代码都可并行执行(并行的程度取决于硬件或者网络)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值