Node.js如何在后台工作-简要分析
Node.js仅使用一个JavaScript执行线程。
问题是-Node.js如何处理多个http或任何其他请求,并且在性能,安全性方面也可能存在疑问?
Node.js在应用程序启动时启动事件循环并使用它处理回调函数.Node.js维护工作池。长时间运行的操作将转移到该工作池,事件池仅在任务完成时处理该工作池的响应。
工作者池与操作系统配合使用,可以完成繁重的工作并管理任务计划。
一旦完成任务,工作池就会使用回调函数来响应事件循环。
事件循环维护适当事件的执行顺序。
事件循环-
它首先检查任何计时器事件,例如setTimeout或setInterval。
其次,它检查未决的回调,例如与I/O相关的待执行的回调。
下一步是投票;节点将尝试查找新的I/O以执行其回调函数。
检查阶段,在此阶段,节点将立即执行回调函数。它使用setImmediate调用
关闭回调-在结束节点中,将执行已注册的关闭回调函数。
如果没有剩余要执行的注册事件,则仅节点将执行process.exit。
节点维护一个ref变量来保存事件计数器,在每个新事件中,计数器都会递增。
在服务器环境中,我们使用createServer创建服务器,该服务器没有关闭事件,因此除非手动停止进程,否则它不会被node.js自动关闭。
默认情况下,每个http请求的节点维护范围都应避免将其与其他请求混在一起。
定义的全局对象(如果有的话)可以由任何请求访问,并且需要开发人员注意。