js多个子进程,它们是什么?Ubuntu

js多个子进程,它们是什么?Ubuntu,ubuntu,sails.js,htop,Ubuntu,Sails.js,Htop,根据htop的说法,通过永远运行sails或直接使用node app.js--prod调用sails,我有一个4个子进程,下面看起来像克隆 如果省略--prod参数,则会得到等量的grunt进程。 正如您所看到的,它们都使用了相同的内存量,不同的PID和不同的时间+读数 我很确定sails不是自动集群,或者是吗?这是一台单核机器(虚拟),所以我不知道这些进程是什么,或者这是htop中的错误 根据这个问题, htop将线程显示为不同的进程,但节点不是单线程的吗?如果这些线程来自何处?使用htop

根据
htop
的说法,通过永远运行sails或直接使用
node app.js--prod
调用sails,我有一个4个子进程,下面看起来像克隆

如果省略
--prod
参数,则会得到等量的grunt进程。 正如您所看到的,它们都使用了相同的内存量,不同的PID和不同的时间+读数

我很确定sails不是自动集群,或者是吗?这是一台单核机器(虚拟),所以我不知道这些进程是什么,或者这是htop中的错误

根据这个问题,


htop将线程显示为不同的进程,但节点不是单线程的吗?如果这些线程来自何处?

使用htop看到的线程是userland线程(用户线程),但当您在集群模式下运行应用程序时(例如4个实例),它会生成内核线程。

当您隐藏用户线程时,您看到的就是内核线程。在集群模式下运行应用程序时,您将创建应用程序的多个内核线程。对于每个应用程序的内核线程,都有多个与之关联的用户线程

(对于htop,您可以通过F2隐藏userland线程并显示选项)

有关说明,请参见屏幕截图

在上一个屏幕截图中,您看到了一些内核和userland的线程,但还有更多。
我的意思是,对于每个内核线程,都有一些与之相关联的userland线程。

那些用户线程也是node.js线程池(我知道node event loop是单线程的,但它需要幕后线程来完成其他任务)?或者那些是由框架创建的?是的。。。这些是node应用程序用来维护其eventloop和其他一切的线程。。。默认情况下,每个应用程序都有自己的几个userland线程。这些线程仅由应用程序创建和控制。