Nodejs利用所有CPU上的所有核心

问题描述 投票:2回答:2

我将创建多线程应用程序,高度利用所有CPU上的所有核心进行密集的IO(Web浏览),然后密集CPU(爬行流的分析)。 NodeJS是否适用于此(因为它是单线程的,我不想运行几个nodejs实例[每个核心一个]并在它们之间进行同步)。或者我应该考虑其他平台?

multithreading node.js
2个回答
1
投票

节点是完美的;它实际上被命名为Node作为其应用程序的预期拓扑的引用,作为彼此通信的多个(分布式)节点。

看看内置的cluster模块,还可以参考this articlethat one


0
投票

JavaScript V8 Engine适用于在One核心上运行的异步任务。但是,这并不意味着您可以让多个核心运行相同或不同的应用程序,这些应用程序之间可以相互通信。

您只需要了解可能发生的一些多核问题。

例如,如果您要在线程之间共享大量信息,那么这可能不是您的最佳语言。

考虑到多核语言的因素,我最近已经介绍了基于Erlang(http://elixir-lang.org/)的Elixir。

它是一种非常酷的语言,100%思考多线程应用程序。但它的目的是让它变得简单,而且非常快速的应用程序可以根据您的需要/可以为多个内核进行扫描。

回到节点,答案是肯定的,它支持多线程,但由您来决定继续使用什么。看看这个答案,你可能会澄清你的想法:Node.js on multi-core machines

© www.soinside.com 2019 - 2024. All rights reserved.