Multithreading 如何使NodeJ使用更多的CPU核心或多线程,而不是单线程 互联网说,

Multithreading 如何使NodeJ使用更多的CPU核心或多线程,而不是单线程 互联网说,,multithreading,node.js,cpu-usage,Multithreading,Node.js,Cpu Usage,节点是单线程的,并且不会在潜在的多核机器中自动使用多个单核。这意味着,除非您以不同的方式进行设计,否则您的应用程序将无法充分利用托管它的服务器提供的可用容量 清楚的问题?(更新) 简单的问题,没有比较或缩放技巧 -可以让NodeJ使用多CPU使用率吗 -当节点使用单线程时会发生什么情况? -如果我们在同一台机器上启动节点多进程(node1、node2、node3),使用全部4个服务器核心是否会使服务器变慢? -当节点进程使用相同的内核争夺CPU资源时会发生什么 我读了这篇文章,然后想问你们:)

节点是单线程的,并且不会在潜在的多核机器中自动使用多个单核。这意味着,除非您以不同的方式进行设计,否则您的应用程序将无法充分利用托管它的服务器提供的可用容量

清楚的问题?(更新) 简单的问题,没有比较或缩放技巧
-可以让NodeJ使用多CPU使用率吗 -当节点使用单线程时会发生什么情况?
-如果我们在同一台机器上启动节点多进程(node1、node2、node3),使用全部4个服务器核心是否会使服务器变慢?
-当节点进程使用相同的内核争夺CPU资源时会发生什么

我读了这篇文章,然后想问你们:)
  • :佩特·科比特

    • 你的问题完全正确

      一个典型的nodejs web服务器在任何给定时刻都只使用一个CPU核心


      看一看

      这里需要记住的是,多线程代码不容易正确编写,而在应用程序中处理并发性是很少有语言能做得很好的事情。NodeJS团队之所以选择不包含线程实现,可能是因为JavaScript本身缺少可以简化此过程的语言功能,而让NodeJS使用非标准JavaScript违背了该项目的意图。这些问题中有可能有一部分会得到解决

      也就是说,从操作系统的角度来看,线程和进程之间的区别非常小。每个进程由一个或多个线程组成,每个线程根据优先级与系统上的其他线程竞争资源

      如果您构建了一个高度多线程的应用程序,或者构建了一个多进程的应用程序,那么当您的任何线程都将100%利用CPU核心时,您将面临同样的问题

      NodeJS中的解决方案是将您的任务分解为一系列较小的任务,这些任务可以在同一流程中(如您可能使用的)分配给工作人员,也可以在流程之间使用某种形式的进程间通信

      如果您担心您的服务器被淹没并陷入停顿,那么您需要做的是设置某种速率限制器,以控制节点进程正在完成的工作量。这样的工作队列是实现这一点的一种方法


      所有这些都是关于本地nodej的。如果您愿意加入一些模块,这对于任何严肃的工作都是非常重要的,那么您确实可以选择NPM提供的软件包来满足您的需要。

      Mike Gleason关于使用集群模块的回答是正确的


      一种更简单的“使用”方法是使用PM2应用程序/模块来管理节点进程,它为您管理集群并允许优雅的重新启动等。

      不客气,但老实说,听起来您对这些问题还不够了解,无法提出合理的问题。您能解释一下吗。。什么是单线程?在你最喜欢的搜索引擎中输入类似于“单线程”性能的东西。“向我解释这些概念”是一个可怕的问题,因为它不具体,而且有大量的网页可以解释这些概念,你可以选择一个最关注你需要知道的和你觉得最容易理解的。为什么你需要node.js来做更多的事?你是否达到了它的性能上限?如果不是,这不是一个你应该问的问题。谢谢..david Schartz,但是,这个问题不是比较单线程和多线程性能,只是一个简单的问题,节点函数编程如何使用子处理。。在nodejs文档集群中谢谢您:)你完美地回答了我的问题。。1.nodeJs可以做到这一点。让它100%。。3.根据优先级,我将学习更多的技术方法来实现这一点。。从你的建议开始:-在nodeJS中创建-学习---。。听起来这是一项艰苦的工作。。