Node.js仅使用一个JavaScript执行线程。
问题是-Node.js如何处理多个http或任何其他请求,并且在性能,安全性方面也可能存在疑问?
Node.js在应用程序启动时启动事件循环并使用它处理回调函数.Node.js维护工作池。长时间运行的操作将转移到该工作池,事件池仅在任务完成时处理该工作池的响应。
工作者池与操作系统配合使用,可以完成繁重的工作并管理任务计划。
一旦完成任务,工作池就会使用回调函数来响应事件循环。
事件循环维护适当事件的执行顺序。
事件循环-
它首先检查任何计时器事件,例如setTimeout或setInterval。
其次,它检查未决的回调,例如与I / O相关的待执行的回调。
下一步是投票;节点将尝试查找新的I / O以执行其回调函数。
检查阶段,在此阶段,节点将立即执行回调函数。它使用setImmediate调用
关闭回调-在结束节点中,将执行已注册的关闭回调函数。
如果没有剩余要执行的注册事件,则仅节点将执行process.exit。
节点维护一个ref变量来保存事件计数器,在每个新事件中,计数器都会递增。
在服务器环境中,我们使用createServer创建服务器,该服务器没有关闭事件,因此除非手动停止进程,否则它不会被node.js自动关闭。
默认情况下,每个http请求的节点维护范围都应避免将其与其他请求混在一起。
定义的全局对象(如果有的话)可以由任何请求访问,并且需要开发人员注意。
问题内容: 在我的数据库中,我可以说有5000多个用户,现在,如果我在主父节点中使用来获得多少人, 我知道getChildrenCount会返回一个带有父级内部子级数量的long,但这会如何影响性能? 几个月前,我制作了一个应用程序来管理用户,该应用程序比通过Web控制台更有效地管理用户,因为页面变得静态并且用户不断增长。 现在,我想知道是否每当我请求用户数量时,该应用程序就会循环遍历5000+个
问题内容: 我不了解关于nodejs的几件事。每个信息来源都说,由于缺少线程锁定和上下文切换,node.js比标准线程化Web服务器更具可伸缩性,但是我想知道,如果node.js不使用线程,它将如何并行处理并发请求?事件I / O模型意味着什么? 非常感谢您的帮助。谢谢 问题答案: 节点完全是事件驱动的。基本上,服务器由一个线程处理一个事件接着另一个事件组成。 一个新的请求进入是一种事件。服务器开
我用node写了一个工具,如何做到,让用户npm全局安装后,运行直接是后台运行,不需要使用类似pm2之类的工具? 类似Whistle这样的https://www.npmjs.com/package/whistle
问题内容: 根据Node0.4.3的API文档,该函数启动一个例程,该例程将 注意上的更改。每次访问文件时都会调用该侦听器。 它还说 提供的if应该是包含两个成员的对象,boolean 和,以毫秒为单位的轮询值 这表明它将每隔一段时间检查一次。但这也说 默认值为。 那么这是否意味着它将每毫秒检查一次文件时间是否更改?它是否监听操作系统级别的事件?这是如何运作的? 问题答案: 是的,cpedros是
问题内容: 我对Node.js流有疑问-特别是它们在概念上如何工作。 不缺少有关如何使用流的文档。但是我很难找到流在数据级别如何工作。 我对Web通信HTTP的有限理解是,来回发送完整的数据“包”。类似于个人订购公司目录,客户端向服务器发送GET(目录)请求,然后服务器以目录进行响应。浏览器不会收到目录的页面,而是会收到整本书。 节点流可能是多部分消息吗? 我喜欢REST模型- 尤其是它是无状态的
问题内容: 在下面的示例中,我在绿色背景上绘制了一个自定义,但是它没有出现。为什么会这样? 问题答案: JComponent不会绘制其背景。您可以自己绘制,也可以使用可以绘制背景的JPanel