node.js - [AMI]如何执行一个 Node.js 进程?

标签 node.js amazon-ami

当然, 我知道 Node.js 是一种单线程语言。 但有些不对劲...

环境:

操作系统:

NAME="Amazon Linux AMI"
VERSION="2018.03"

Node.js:

$ node -v
v8.12.0

(与nodebrew一起安装)

我执行了这个。

hoge.js:

$ cat  hoge.js
for (let i = 0; i < 10000; i++) {
  console.log('hoge');
}

输出:

$ node hoge.js
hoge
hoge
hoge
hoge
hoge
.
.

htop(交互式进程查看器,如 top 命令):

PID   USER     PRI NI VIRT RES   SHR  S  CPU%  MEM%  TIME+ Command
10001 ec2-user 20  0  971M 149M 22188 R  54.0  7.5 0:05.79 node hoge.js
10002 ec2-user 20  0  971M 149M 22188 S  0.0   7.5 0:00.03 node hoge.js
10003 ec2-user 20  0  971M 149M 22188 S  0.0   7.5 0:00.07 node hoge.js
10004 ec2-user 20  0  971M 149M 22188 S  0.0   7.5 0:00.07 node hoge.js
10005 ec2-user 20  0  971M 149M 22188 S  0.0   7.5 0:00.07 node hoge.js

发生了什么事?

我想用一个进程来执行它。 有配置文件吗?

谢谢。

最佳答案

这些可能是单个进程的许多线程。

默认情况下,htop 还显示线程,而不是进程。您可以在其设置中更改此行为(“显示用户态线程”/“为用户态线程着色”)。

虽然 Node 就运行用户代码而言是单线程的,但它仍然有内部线程要做,例如垃圾收集或其他事情。

关于node.js - [AMI]如何执行一个 Node.js 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52924346/

相关文章:

javascript - 使用 Node.js + 异步模块从同步回调创建同步循环

javascript - Discord.js 机器人错误,控制台 : DiscordAPIError: Cannot send an empty message

amazon-ec2 - 如何从 EC2 用户界面获取我的 AMI list 路径?

amazon-web-services - 如何从 AWS S3 存储中的 VHD 创建 AMI

linux - 亚马逊 AMI tomcat7 tomcat-users.xml : command not found

amazon-web-services - 使用 aws cli 获取最新的 Windows 2012R2 基础 AMI ID?

通过webkit-devtools-agent调试node.js,如何查看堆中对象的内容?

javascript - express - 如何在对 API 的请求中读取 HttpOnly cookie?

node.js - 如何在 express 应用程序中设置基于 Jade 的选项? (使用 "basedir"和 "extends"路径需要 "absolute"选项)

amazon-web-services - 无法让 ixgbevf 在当前的 Ubuntu AMI 上构建