美文网首页
node系列扯犊子之十一Child Process模块

node系列扯犊子之十一Child Process模块

作者: wsgdiv | 来源:发表于2021-05-13 10:22 被阅读0次

    作用:child_process模块用于新建子进程。子进程的运行结果储存在系统缓存之中(最大200KB),等到子进程运行结束以后,主进程再用回调函数读取子进程的运行结果。

    exec

    用于执行bash命令,它的参数是一个命令字符串。
    最多可以接受两个参数,第一个参数是所要执行的shell命令,第二个参数是回调函数,该函数接受三个参数,分别是发生的错误、标准输出的显示结果、标准错误的显示结果。

    execSync是exec的同步执行版本。

    它可以接受两个参数,第一个参数是所要执行的命令,第二个参数用来配置执行环境。

    execFile方法

    直接执行特定的程序,参数作为数组传入,不会被bash解释,因此具有较高的安全性。

    var child_process = require('child_process');
    
    var path = ".";
    child_process.execFile('/bin/ls', ['-l', path], function (err, result) {
        console.log(result)
    });
    
    spawn方法

    创建一个子进程来执行特定命令,用法与execFile方法类似,但是没有回调函数,只能通过监听事件,来获取运行结果。它属于异步执行,适用于子进程长时间运行的情况。
    pawn方法接受两个参数,第一个是可执行文件,第二个是参数数组。
    spawn对象返回一个对象,代表子进程。该对象部署了EventEmitter接口,它的data事件可以监听,从而得到子进程的输出结果。
    spawn方法与exec方法非常类似,只是使用格式略有区别。

    fork方法

    直接创建一个子进程,执行Node脚本,fork('./child.js') 相当于 spawn('node', ['./child.js']) 。与spawn方法不同的是,fork会在父进程与子进程之间,建立一个通信管道,用于进程之间的通信。

    send()

    使用 child_process.fork() 生成新进程之后,就可以用 child.send(message, [sendHandle]) 向新进程发送消息。新进程中通过监听message事件,来获取消息。

    参考链接:

    http://javascript.ruanyifeng.com/nodejs/child-process.html

    相关文章

      网友评论

          本文标题:node系列扯犊子之十一Child Process模块

          本文链接:https://www.haomeiwen.com/subject/jremdltx.html