Node child_process的fork,spawn,exec我有话要说

Node child_process的fork,spawn,exec我有话要说

这里写图片描述

node的异步io处理方式是众所周知的,io越密集,node 的优势就越明显,但是node是单线程的,不能像java那种多线程语言一样开启一些worker thread,充分利用cpu资源,提高计算效率和操作系统的吞吐量,但是node依然给我们提供了child_process让我们可以创建子进程来充分的利用cpu资源,让node也能处理cpu密集的应用。

exec

child_process给我们提供了三个方法用于创建子进程,fork,spawn,exec,首先来看一下exec。

child_process.exec(command[, options][, callback])

exec开始一个子进程执行shell命令,并缓存输出传入callback的第二个参数,这个缓存区默认只有200kb的大小,可以通过options.maxBuffer进行设置。

options

command <string> 要运行的命令,用空格分隔参数。
options <Object>
cwd <string> 子进程的当前工作目录。
env <Object> 环境变量键值对。
encoding <string> 默认为 'utf8'shell <string> 用于执行命令的 shell。 在 UNIX 上默认为 '/bin/sh',在 Windows 上默认为 process.env.ComSpec。 详见 Shell Requirements 与 Default Windows Shell。
timeout <number> 默认为 0。
maxBuffer <number> stdoutstderr 允许的最大字节数。 默认为 200*1024。 如果超过限制,则子进程会被终止。 查看警告: maxBuffer and Unicode。
killSignal <string> | <integer> 默认为 'SIGTERM'。
uid <number> 设置该进程的用户标识。(详见 setuid(2))
gid <number> 设置该进程的组标识。(详见 setgid(2))
windowsHide <boolean> Hide the subprocess console window t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值