当然, 我知道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
发生了什么事?
我想通过一个进程执行此操作。 有配置文件吗?
谢谢。
答案 0 :(得分:1)
那些可能是单个进程的许多线程。
默认情况下,htop
也显示线程,而不是进程。您可以在其设置(“显示用户界面线程” /“颜色用户界面线程”)中更改此行为。
就运行的用户代码而言,Node是单线程的,但它仍然具有内部线程,例如垃圾收集或其他东西。