栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Node.js中的并行任务

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Node.js中的并行任务

我如何使它实际上是平行的?

首先,在单节点应用程序中您实际上不会并行运行。节点应用程序在单个线程上运行,并且节点的事件循环一次仅处理一个事件。即使在多核计算机上运行,​​您也不会在节点应用程序中获得并行处理。

也就是说,您可以通过将代码分叉到单独的节点进程中或通过生成子进程来在多核计算机上实现并行处理。实际上,这允许您创建节点本身的多个实例,并以不同的方式(例如,stdout,进程派生IPC机制)与这些进程进行通信。此外,您可以选择将功能(按职责)分离到各自的节点应用程序/服务器中,并通过RPC进行调用。

异步 代码通常不阻止调用者的事情是什么(使用NodeJS时)? 它开始一个子进程吗?

它没有开始新的过程。在下面,当在node.js中使用async.parallel时,它正在使用

process.nextTick()
。并且nextTick()允许您通过将工作推迟到新的堆栈上来避免阻塞调用者,从而可以交织cpu密集型任务等。

长话短说

节点无法轻松实现“开箱即用”的多处理器并发。相反,Node为您提供了非阻塞设计和事件循环,该事件循环利用线程而不共享内存。多个线程不能共享数据/内存,因此不需要锁。节点是无
锁的 。一个节点进程利用一个线程,这使节点既安全又强大。

当您需要在多个进程之间分配工作时,请使用某种消息传递方式与其他进程/服务器进行通信。 例如IPC / RPC。


有关更多信息,请参见:

SO关于什么是Node.js给出了很棒的答案…很好。

了解process.nextTick()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448783.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号