我正在阅读一个包含child_process库的node.js项目。
儿童过程究竟是什么?这是一个类似的JavaScript网络工作者?
在子进程中运行进程而不是简单地正常执行它有什么好处?我假设有一些如何让你更多地访问内存?
答案 0 :(得分:3)
当您在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网络工作者吗?
它可能与网络工作者类似,但我不知道网络工作者是如何在浏览器中实现的。 AFAIK node
没有开箱即用的webworkers API。但是,如果您的子进程是node.js
进程,那么您可以查看此子进程类似于webworker
的进程。看一下这个cluster API。