在这篇文章中,我们将讨论Node.js中spoon()fork()方法的区别。两者都是在Node.js中创建子进程的方法,以便处理不断增加的工作负载。

Spawn()方法

spawn进程在一个新的进程中启动一个命令。可以将命令作为一个参数传给它。spawn函数的结果是一个实现EventEmitterAPI的子进程实例。事件的处理程序可以附加或注册到创建的子实例上。一些可以附加或注册在子实例上的事件是断开连接、错误、关闭和消息等。

参数: 该方法接受以下参数。

  • command(命令): 它接受要运行的命令,是一个字符串。
  • args: 它是一个字符串参数的列表。默认值是一个空数组。
  • options: 这个选项对象可以有各种属性,如stdio、uid、gid、shell等。
    • shell: 接受一个布尔值。如果为真,则在shell中运行命令。不同的shell可以被指定为一个字符串。默认值是false,意味着没有shell。

返回值: 它返回一个子进程的实例。

例子: 这是一个非常简单的使用 spawn 的一般例子。首先通过解构来要求 spawn,然后通过传递参数来创建一个子进程。然后在该子进程上注册一个stdout事件。

const { spawn } = require('child_process');
const child = spawn('dir', ['E:empty'], { shell: true });

child.stdout.on('data', (data) => {
    console.log(`stdout ${data}`);
});

Spawn 和 Fork 子进程的区别:

Spawn Fork
一旦子进程开始执行,这就开始从子进程向父进程发回数据。 这不会自动发送数据,但可以使用全局模块名称的进程从子进程发送数据,并在父模块中使用子进程的名称发送至子进程。
它通过命令创建一个新的进程,而不是在同一节点进程上运行。 它使几个单独的进程(子进程),但所有这些进程都运行在与父进程相同的节点进程上。
在这种情况下,没有创建新的V8实例。 在这种情况下,会创建一个新的V8实例。
当我们希望子进程返回大量的数据给父进程时,就会用到它。 它被用来将计算密集型任务与主事件循环分开。

Node.js中spawn()和fork()方法的区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Node.js中spawn()和fork()方法的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-spawn-and-fork-methods-in-node-js.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。