当然, 我知道 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/