什么是节点子进程?
What is a node child process?
我正在阅读一个包含 child_process 库的 node.js 项目。
到底什么是子进程?这类似于 javascript 网络工作者吗?
运行 进程在子进程中而不是简单地正常执行它有什么好处?我假设这是如何让您更多地访问内存的?
当您在 Linux 上 运行 终端(bash 进程),并执行一个命令,例如 ls -lh /usr
,终端启动一个 child进程 ls
,写入 stdout
当前目录中的所有文件。现在想象一下,您将 node.js
作为 parent 进程,而不是终端。您可以 spawn/start child 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}`);
});
Is this similar a javascript web worker?
它可能类似于 webworkers,但我不知道 webworkers 在浏览器中是如何实现的。 AFAIK node
没有开箱即用的 webworkers API。但是,如果您的 child 进程是 node.js
进程,那么您可以将此 child 进程视为类似于 webworker
的东西。看看这个cluster API.
我正在阅读一个包含 child_process 库的 node.js 项目。
到底什么是子进程?这类似于 javascript 网络工作者吗?
运行 进程在子进程中而不是简单地正常执行它有什么好处?我假设这是如何让您更多地访问内存的?
当您在 Linux 上 运行 终端(bash 进程),并执行一个命令,例如 ls -lh /usr
,终端启动一个 child进程 ls
,写入 stdout
当前目录中的所有文件。现在想象一下,您将 node.js
作为 parent 进程,而不是终端。您可以 spawn/start child 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}`);
});
Is this similar a javascript web worker?
它可能类似于 webworkers,但我不知道 webworkers 在浏览器中是如何实现的。 AFAIK node
没有开箱即用的 webworkers API。但是,如果您的 child 进程是 node.js
进程,那么您可以将此 child 进程视为类似于 webworker
的东西。看看这个cluster API.