NodeJs——子进程

简介:    node.js是基于单线程模型架构,这样的设计可以带来高效的CPU利用率,但是无法却利用多个核心的CPU,为了解决这个问题,node.js提供了child_process模块,通过多进程来实现对多核CPU的利用. child_process模块提供了四个创建子进程的函数,分别是spawn,exec,execFile和fork。



   node.js是基于单线程模型架构,这样的设计可以带来高效的CPU利用率,但是无法却利用多个核心的CPU,为了解决这个问题,node.js提供了child_process模块,通过多进程来实现对多核CPU的利用. child_process模块提供了四个创建子进程的函数,分别是spawn,exec,execFile和fork。


一,创建子进程


//spawn函数用给定的命令发布一个子进程,只能运行指定的程序,参数需要在列表中给出
var child_process = require('child_process');
var child = child_process.spawn('grep', ['ssh']); 
child.stdout.on('data', function(data) {
  console.log(data);
});

二,exec


//exec也是一个创建子进程的函数,与spawn函数不同它可以直接接受一个回调函数作为参数,回调函数有三个参数,分别是err, stdout , stderr
var child_process = require('child_process');
child_process.exec( command , function(err, stdout , stderr ) {
  console.log( stdout );
});


三,execFile


//execFile函数与exec函数类似,但execFile函数更显得精简,因为它可以直接执行所指定的文件,基本使用方法如下:
var child_process = require('child_process');
child_process.execFile( file , function(err, stdout , stderr ) {
  console.log( stdout );
});
//execFile与spawn的参数相似,也需要分别指定执行的命令和参数,但可以接受一个回调函数,与exec的回调函数相同。


四,fork


//fork函数可直接运行Node.js模块,所以我们可以直接通过指定模块路径而直接进行操作。使用方法如下:
var child_process = require('child_process');
child_process.fork( modulePath );
//该方法是spawn()的特殊情景,用于派生Node进程。除了普通ChildProcess实例所具有的所有方法,所返回的对象还具有内建的通讯通道。






目录
相关文章
|
前端开发
bat 批处理文件 结束node进程 杀死指定端口
bat 批处理文件 结束node进程 杀死指定端口
|
4月前
|
负载均衡 JavaScript 算法
Node.js 多进程的概念、原理、优势以及如何使用多进程来提高应用程序的性能和可伸缩性
Node.js 多进程的概念、原理、优势以及如何使用多进程来提高应用程序的性能和可伸缩性
135 1
|
1月前
|
JavaScript Windows
NodeJs——如何获取Windows电脑指定应用进程信息
NodeJs——如何获取Windows电脑指定应用进程信息
56 0
|
1月前
|
JavaScript 前端开发
nodejs process进程
nodejs process进程
22 0
|
3月前
|
JavaScript 前端开发 Shell
深入Node.js的进程与子进程:从文档到实践
深入Node.js的进程与子进程:从文档到实践
|
3月前
|
缓存 JavaScript Unix
Node.js 多进程
Node.js 多进程
24 0
|
4月前
|
消息中间件 监控 JavaScript
Node.js中的进程管理:child_process模块与进程管理
【4月更文挑战第30天】Node.js的`child_process`模块用于创建子进程,支持执行系统命令、运行脚本和进程间通信。主要方法包括:`exec`(执行命令,适合简单任务)、`execFile`(安全执行文件)、`spawn`(实时通信,处理大量数据)和`fork`(创建Node.js子进程,支持IPC)。有效的进程管理策略涉及限制并发进程、处理错误和退出事件、使用流通信、谨慎使用IPC以及监控和日志记录,以确保应用的稳定性和性能。
|
12月前
node子进程(Child Process)获取硬盘分区
node子进程(Child Process)获取硬盘分区
50 0
|
JSON 资源调度 负载均衡
这可能是你见过最全的Node.js应用程序管理与部署:使用PM2进行进程管理
node是单线程应用,单线程最大的弊端就是无法利用多核CPU带来的优势来提升运行效率。 pm2(process manager)是一个进程管理工具,可以用它来管理node进程,负责所有的node进程,并查看node进程的状态,也支持性能监控,负载均衡等功能。
438 0
这可能是你见过最全的Node.js应用程序管理与部署:使用PM2进行进程管理
|
JavaScript
使用 Node.js 多进程提高任务执行效率
使用 Node.js 多进程提高任务执行效率
122 0