iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >nodejs事件循环有哪几个阶段
  • 849
分享到

nodejs事件循环有哪几个阶段

2024-04-02 19:04:59 849人浏览 八月长安
摘要

本篇内容介绍了“nodejs事件循环有哪几个阶段”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本篇内容介绍了“nodejs事件循环有哪几个阶段”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

nodejs事件循环的阶段:1、timers(定时器)阶段;2、pending callbacks阶段;3、idle、prepare阶段;4、poll(轮询)阶段;5、check(检查)阶段;6、close callbacks阶段。

nodejs事件循环有哪几个阶段

教程操作环境:windows7系统、nodejs 12.19.0版,DELL G3电脑。

nodejs事件循环

node.js启动时会初始化event loop,每一个event loop都会包含六个循环阶段,nodejs时间循环和浏览器的事件完全不一样。

nodejs事件循环有哪几个阶段
注意:图中的每个方框被称作实践循环的一个阶段(phase),这6个阶段为一轮事件循环。

阶段概括

  • timers(定时器): 此阶段执行那些由setTimeout()setInterval() 调度的回调函数。

  • pending callbacks(I/O回调): 此阶段会执行几乎所有的回调函数,除了close callbacks(关闭回调)和那些由timerssetImmediate() 调度的回调。
    setImmediate约等于setTimeout(callback,0)

  • idle(空转),prepare: 此阶段只在内部使用。

  • poll(轮询): 检索新的I/O事件;在恰当的时候Node会阻塞在这个阶段。

  • check(检查): setImmediate()设置的回调会在此阶段被调用。

  • close callbacks(关闭事件的回调): 诸如Socket.on(‘close’,…)此类的回调在此阶段被调用。

在事件循环的每次运行之间,Node.js会检查它是否在等待异步I/O或定时器,如果没有的话就会自动关闭。

如果event loop进入了poll阶段,且代码没设定timer,将会发生下面情况:

  • 如果poll queue不为空,event loop将同步的执行queue里的callback,直至queue为空,或执行的callback到达系统上限;

  • 如果poll queue为空,将会发生下面情况:
    - 如果代码已经被setImmediate()设定了callback,event loop将结果poll阶段进入check阶段,并执行check阶段的queue(check阶段的queue是setImmediate设定的)。
    - 如果代码没有设定setImmediate(callback),event loop将阻塞在该阶段等待callback加入poll queue,一旦到达就立即执行。

如果event loop进入了poll阶段,且代码设定了timer:

  • 如果poll queue进入空状态时(既poll阶段为空闲状态),event loop将检查timers,如果有1个或多个timers时间时间已经到达,event loop将按循环顺序进入timer阶段,并执行timer queue。

“nodejs事件循环有哪几个阶段”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: nodejs事件循环有哪几个阶段

本文链接: https://www.lsjlt.com/news/85896.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • nodejs事件循环有哪几个阶段
    本篇内容介绍了“nodejs事件循环有哪几个阶段”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • nodejs事件循环是什么
    这篇文章主要讲解了“nodejs事件循环是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nodejs事件循环是什么”吧!我们都听说过 JavaScript 和 Node.js 是单线程的...
    99+
    2023-07-04
  • NodeJS事件循环实例分析
    这篇文章主要介绍“NodeJS事件循环实例分析”,在日常操作中,相信很多人在NodeJS事件循环实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”NodeJS事件循环实例分析”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • 带你了解NodeJS事件循环
    浏览器中存在两个任务队列,一个是宏任务一个是微任务。但是在NodeJS中一共存在六个事件队列,timers,pending callbacks,idle prepare,poll,...
    99+
    2024-04-02
  • oracle数据库启动有哪几个阶段
    oracle 数据库启动分为7个阶段:1. 初始化;2. 实例恢复;3. 归档日志恢复;4. 崩溃恢复;5. 对象开放;6. 服务器准备;7. 服务器启动。该过程涉及加载库文件、配置参数...
    99+
    2024-05-10
    oracle
  • node.js事件队列的阶段有哪些
    本篇内容主要讲解“node.js事件队列的阶段有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“node.js事件队列的阶段有哪些”吧! ...
    99+
    2024-04-02
  • Flex事件机制的阶段有哪些
    这篇文章主要为大家展示了“Flex事件机制的阶段有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Flex事件机制的阶段有哪些”这篇文章吧。Flex事件机制中的基本概念event object...
    99+
    2023-06-17
  • 学Python爬虫有哪几阶段
    这篇文章主要讲解了“学Python爬虫有哪几阶段”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“学Python爬虫有哪几阶段”吧!爬虫能做什么?爬虫除了能够获取互联网的数据以外还能够帮我们完成...
    99+
    2023-06-02
  • nodejs中事件和事件循环的示例分析
    这篇文章主要介绍nodejs中事件和事件循环的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!nodejs中的事件循环虽然nodejs是单线程的,但是nodejs可以将操作委托给系统内核,系统内核在后台处理这些...
    99+
    2023-06-14
  • c语言编译有几个阶段
    C语言编译过程一般分为四个阶段:预处理、编译、汇编和链接。1. 预处理(Preprocessing):预处理阶段主要进行宏替换、头文...
    99+
    2023-08-14
    c语言
  • servlet生命周期有几个阶段
    servlet的生命周期包括以下几个阶段:1. 加载阶段(Loading):当容器启动时,会加载servlet类,并创建servle...
    99+
    2023-08-26
    servlet
  • nodeJs事件循环运行代码解析
    目录Nodejs运行时node运行时代码运行Event Loop如何工作?实验Nodejs运行时 JS语言是同步,阻塞,单线程的,但是nodejs不是。Nodejs由三个主要组件:...
    99+
    2023-05-16
    nodeJs事件循环 nodeJs 事件循环
  • 如何理解Nodejs中的事件循环
    这期内容当中小编将会给大家带来有关如何理解Nodejs中的事件循环,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Node事件循环Node底层使用的语言libuv,是一个c...
    99+
    2024-04-02
  • nodeJs事件循环运行代码怎么写
    这篇文章主要讲解了“nodeJs事件循环运行代码怎么写”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nodeJs事件循环运行代码怎么写”吧!Nodejs运行时JS语言是同步,阻塞,单线程的,...
    99+
    2023-07-06
  • nodejs都有哪几个模块
    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它的出现使得JavaScript可以在服务器端运行。在Node.js中,有许多内置模块可以直接调用,也可以通过npm(Node.js Package Manage...
    99+
    2023-05-25
  • JSP生命周期走过哪几个阶段
    这篇文章主要介绍了JSP生命周期走过哪几个阶段的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇JSP生命周期走过哪几个阶段文章都会有所收获,下面我们一起来看看吧。JSP生命周期就是从创建到销毁的整个过程,类似于s...
    99+
    2023-06-27
  • nodejs中事件循环机制的示例分析
    这篇文章主要介绍了nodejs中事件循环机制的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前端开发离不开JavaScript,Javascript是一种web前端语...
    99+
    2023-06-14
  • nodejs可视化学习:事件循环【动图演示】
    我们都听说过 JavaScript 和 Node.js 是单线程的,但实际上这意味着什么?这意味着 JavaScript 一次只能做一件事。 例如,我们不能同时将数字相乘和相加。我们通常按顺序进行操作。我们相加然后相乘,反之亦然。现代计算机...
    99+
    2022-11-25
    事件循环 javascript Node.js
  • 使用Nodejs怎么实现模块化和事件循环
    这期内容当中小编将会给大家带来有关使用Nodejs怎么实现模块化和事件循环,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 Node.js简介Node.js 到底是什么?开始学习的时候,对于前端的一些知识...
    99+
    2023-06-15
  • Nodejs中如何理解异步I/O和事件循环
    这期内容当中小编将会给大家带来有关Nodejs中如何理解异步I/O和事件循环,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。异步I/O概念处理器访问任何寄存器和 Cache...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作