Node基础模块 - process 和 child_porcess

  Node 基础模块 - process / child_process ( 进程/子进程 )

 

  进程

  进程是计算机资源分配和调度的基本单元。

  每一个应用程序启动会开启一个进程,分配固定的资源以及一个进程ID,并且进程之间是独立的

  进程之间可以通过 IPC 进行通信

 

  线程

  线程是计算机最小的计算单元

  进程可以拥有多个线程,但是线程只能属于一个进程

  线程可以共享进程的部分资源

  node 是单线程应用 ( 一个进程一个线程 )

  node 通过创建多个进程来实现多线程 ( 为了提高 cpu 的利用率 )

 

  process 模块的 process 模块作用

  1、用来查看当前进程的信息

  2、用来操作当前的进程

  3、进程也继承 eventEmitter ,所以可以监听进程变化

 

  常见进程的信息

  process.pid :当前的进程 ID

  process.ppid :当前进程的父进程 ID

  process.env :当前进程的环境变量

  process.cwd() :当前进程的启动目录

  process.memoryUsage() :查看当前进程使用内存情况

  process.argv :命令启动时候参数

  

  操作当前的进程

  process.exit :退出当前进程

  process.chdir :改变当前工作目录

  process.abort :终止当前进程

  process.nextTick :加入下一个执行队列

 

  监听进程变化

  beforeExit :退出前执行

  exit :调用了 exit 执行

  uncaughtException :捕获到异常执行

  SIGINT :ctrl+c 时候执行( 需要主动调用 exit 才会退出 )

  

  IPC 通道相关方法/句柄

  send 方法 :向其他进程发送信息

  disconnect 方法 :结束进程连接

  message 句柄 :当其他进程发送信息的时候,触发该函数

  disconnect 句柄 :当进程调用 disconnect 时候触发

 

 

  child_process 模块的 child_process 模块作用

  1、用于创建子进程,并返回一个子进程实例 ( ChildProcess 类)

  

  child_process 创建进程方法

 

  exec(command[,options][,callbcak]) :回调函数,返回具体的输出数据

    conmmand :带有参数的命令

    options.cwd :工作目录

    options.env : 环境变量

  

  spwan(command[,args][,options]) :返回一个流对象,可以通过句柄获取数据

    command :不带参数的命令

    options.cwd :工作目录

    options.env :环境变量

    options.detached :父进程结束,子进程不结束

    options.stdio:IPC 管道形式

 

  fork(path) :返回一个子进程实例 ( ChildProcess ),创建一个 IPC 通道

    path :子进程文件路径

 

  

   创建进程方法不同

  1、参数不同

  2、返回数据类型和大小不同( exec小量数据,spwan大量数据 )

  3、fork 返回一个子进程实例、spwan 返回一个流对象、exec 回调函数直接接受数据

 

  

  

 

  

    

 

posted @ 2020-04-22 10:58  小结巴巴吧  阅读(322)  评论(0编辑  收藏  举报