【发布时间】:2017-02-19 12:27:17
【问题描述】:
我正在阅读一个包含 child_process 库的 node.js 项目。
究竟什么是子进程?这类似于 javascript web worker 吗?
在子进程中运行进程而不是简单地正常执行它有什么好处?我假设这可以让您更多地访问内存?
【问题讨论】:
标签: javascript node.js child-process
我正在阅读一个包含 child_process 库的 node.js 项目。
究竟什么是子进程?这类似于 javascript web worker 吗?
在子进程中运行进程而不是简单地正常执行它有什么好处?我假设这可以让您更多地访问内存?
【问题讨论】:
标签: javascript node.js child-process
当您在 Linux(bash 进程)上运行终端并执行命令(例如 ls -lh /usr)时,终端会启动一个子进程 ls,该进程将写入当前目录中的所有文件 stdout。现在想象一下,您将node.js 作为父进程而不是终端。您可以像这样生成/启动一个子 ls 进程:
const spawn = require('child_process').spawn;
const ls = spawn('ls', ['-lh', '/usr']);
ls.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
ls.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
ls.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
这类似于 javascript web worker 吗?
它可能类似于 webworkers,但我不知道 webworkers 是如何在浏览器的底层实现的。 AFAIK node 没有开箱即用的 webworkers API。但是如果你的子进程是node.js 进程,那么你可以查看这个子进程类似于webworker 的东西。看看这个cluster API。
【讨论】: