当前位置: 首页 > 面试题库 >

为什么node.js不适合重型CPU应用程序?

郜驰
2023-03-14
问题内容

Node.js服务器在I / O和大量客户端连接方面非常高效。但是,为什么与传统的多线程服务器相比,node.js不适合重型CPU应用程序?

我在这里读过Felix Baumgarten


问题答案:

尽管节点具有异步事件模型,但它本质上还是单线程的。启动Node进程时,您正在单个内核上的单个线程上运行单个进程。因此,您的 代码 将不会并行执行,只有I
/ O操作是并行的,因为它们是异步执行的。因此,长时间运行的CPU任务会阻塞整个服务器,通常不是一个好主意。

假设您只是这样启动一个Node进程,则有可能使多个Node进程并行运行。这样,尽管单个Node进程没有,您仍然可以从多线程体系结构中受益。您只需要在前面有一些负载均衡器,即可将请求分配到所有Node进程中。

另一种选择是让CPU在单独的进程中工作,并使Node与那些进程交互,而不是自己完成工作。

相关阅读内容:

  • 了解node.js事件循环


 类似资料:
  • 问题内容: 我有一个Java应用程序(基于Web),有时显示几个小时的CPU使用率很高(几乎90%)。Linux 命令显示了这一点。重新启动应用程序后,问题消失了。 因此要调查 : 我使用线程转储来查找线程在做什么。发现多个线程处于状态,一些处于其他状态。在进行重复的线程转储时,我确实看到了一些始终处于状态的线程。因此,他们似乎是罪魁祸首。 但是我无法确定是哪个线程正在占用CPU或进入了无限循环(

  • 我有一个Java应用程序(基于web),它有时会在几个小时内显示非常高的CPU利用率(几乎90%)。Linux的TOP命令显示了这一点。重新启动应用程序时,问题就会消失。 所以要调查: 我使用线程转储来查找线程正在执行的操作。有几个线程处于“可运行”状态,一些线程处于其他一些状态。在重复执行线程转储时,我确实看到一些线程总是处于“可运行”状态。因此,他们似乎是罪魁祸首。 但我无法确定,哪个线程占用

  • 问题内容: 我做了一个基于Java Swing的应用程序。 在我的应用程序上,如果我在JFrame上的任何地方单击,则我的右键单击不起作用? 我没有设置那样的东西..那为什么不起作用? 基本上我的键盘不起作用,然后我尝试复制-然后使用鼠标粘贴数据,然后我才知道…我的右键单击不适用于我的应用程序的任何区域… 问题答案: 右键单击效果很好-在Swing中,不要获取您在其他应用中习惯的上下文菜单是很正常

  • 我正在创建一个约会网站来学习网络开发,我不知道如何制作背景色,它只是在特定的div上不起作用。我应该改变什么?我尝试了很多东西,但什么都没有发生。 添加lorem ipsum所以我可以问这个问题...跳过这个 Lorem ipsum dolor sit amet,concetetur adipiscing elit。Morbi ut felis magna。聪明的人,聪明的人,聪明的人,聪明的人。

  • 任何关于报告源代码的其他信息,请在评论中让我知道。