请解释子进程这一概念,并说明在 Node.js 环境下有哪些创建子进程的方法。
考察说明
考察对子进程概念的理解以及在 Node.js 中创建子进程的常见方式。
回答思路
- 【回答框架 1】子进程是指由当前进程创建的独立运行进程,拥有独立的内存空间和资源,常用于执行耗时任务、调用外部命令或实现多核利用,在 Node.js 中通过 child_process 模块实现。
- 【回答框架 2】创建子进程的常用方法有 exec、execFile、spawn 和 fork。spawn 用于流式处理大量数据,exec 会缓存输出并回调,execFile 直接执行文件,fork 专门用于创建 Node.js 子进程并支持 IPC 通信。
- 【回答框架 3】选择时按需求:需要大量数据流用 spawn,简单命令或小输出用 exec,跨平台执行文件用 execFile,需要多模块通信或多进程集群用 fork。
- 【关键点 1】子进程独立运行,不共享内存,通过进程间通信交换数据。
- 【关键点 2】spawn 适合处理大量输出,exec 适合小输出且需回调。
- 【关键点 3】fork 用于 Node.js 子进程并内置 IPC 通道。
- 【易错点 1】混淆 exec 和 spawn 的适用场景,导致内存溢出或效率低下。
- 【易错点 2】忽视错误处理,子进程异常时可能挂起主进程。
- 【易错点 3】fork 不可用于非 Node.js 脚本。