【问题标题】:What is a node child process?什么是节点子进程?
【发布时间】:2017-02-19 12:27:17
【问题描述】:

我正在阅读一个包含 child_process 库的 node.js 项目。

究竟什么是子进程?这类似于 javascript web worker 吗?

在子进程中运行进程而不是简单地正常执行它有什么好处?我假设这可以让您更多地访问内存?

【问题讨论】:

    标签: javascript node.js child-process


    【解决方案1】:

    当您在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2017-02-05
      • 2016-12-19
      • 1970-01-01
      相关资源
      最近更新 更多