zoukankan      html  css  js  c++  java
  • nodejs 进程总结

     
     

    child_process

    child_process.spawn(command, args,options) 

    支持 stream 方式操作输入输出,适合数据量大的情况;可以执行任何命令;不创建 V8 实例;可以创建常驻的后台进程 

    对于异步命令不支持callback, 可以使用process.on来监听结果

    const spawn = require('child_process').spawn;
    const touch = spawn('touch',['spawn.js']);
    
    touch.stdout.on('data', (data) => {
      console.log(`stdout: ${data}`);
    });
    
    touch.stderr.on('data', (data) => {
      console.log(`stderr: ${data}`);
    });
    
    touch.on('close', (code) => {
      console.log(`child process exited with code ${code}`);
    });
    

      

    child_process.exec(order,cb(err[,stdout,stderr]))

    order: 是执行的命令. 比如: rm spawn.js
    支持命令执行成功后的回调函数。

    使用 Buffer 来存储进程的输出,可以在回调里面获取输出结果,不太适合数据量大的情况;可以执行任何命令;不创建 V8 实例

    const childProcess = require('child_process');
    
    const ls = childProcess.exec('rm spawn.js', function (error, stdout, stderr) {
       if (error) {
         console.log(error.stack);
         console.log('Error code: '+error.code);
       }
       console.log('Child Process STDOUT: '+stdout);
    });
    

    child_process.fork(order)

    spawn 的一个特例(spawn("node",['app.js'])和fork('app.js') 效果相同)。但只能执行 Node 脚本;会创建一个 V8 实例;建立父子进程的 IPC 双工信息通道,两个进程之间使用process.on("message",fn)和process.send(...)进行信息的交流。

    //master.js
    const childProcess = require('child_process');
    const worker = childProcess.fork('worker.js');
    
    worker.on('message',function(mes){
        console.log(`from worder, message: ${mes}`);
    });
    worker.send("this is master");
    

      

    //worker.js
    process.on('message',function(mes){
        console.log(`from master, message: ${mes}`);
    });
    process.send("this is worker");
    

      

      

  • 相关阅读:
    CS224n, lec 10, NMT & Seq2Seq Attn
    CS231n笔记 Lecture 11, Detection and Segmentation
    CS231n笔记 Lecture 10, Recurrent Neural Networks
    CS231n笔记 Lecture 9, CNN Architectures
    CS231n笔记 Lecture 8, Deep Learning Software
    CS231n笔记 Lecture 7, Training Neural Networks, Part 2
    pytorch坑点排雷
    Sorry, Ubuntu 17.10 has experienced an internal error
    VSCode配置python插件
    tmux配置与使用
  • 原文地址:https://www.cnblogs.com/breakdown/p/15158862.html
Copyright © 2011-2022 走看看