官方文档:https://nodejs.org/api/child_...关于进程,我们知道nodejs是建立在V8引擎之上的,所以也是单线程运行在单一过程优越。这样,程序是单一的,没有多线程,没有锁,更没有线程同步等问题。操作系统在调度期间的上下文切换也较少。node中一个进程对应一个核,但是现在的CPU都是多核的,真实服务器(非VPS)还是有多个CPU的,那么我们如何使用多核CPU服务器呢?当单线程节点执行时,当线程抛出异常而没有被捕获时,会导致整个系统崩溃。如何保证流程的稳健性和稳定性?child_processnodejs是单线程模型,我们的javascript程序会运行在单进程的单进程上,但是利用nodejs的child_process模块??可以实现多进程任务。child_process可以用来创建子进程,实现子进程与主进程的通信。child_process模块提供了以与popen(3)类似但不完全相同的方式生成子进程的能力。此功能主要由child_process.spawn()函数提供:const{spawn}=require('child_process');constls=spawn('ls',['-lh','/usr']);ls.stdout.on('data',(data)=>{console.log(`stdout:${data}`);});ls.stderr.on('data',(data)=>{console.log(`stderr:${data}`);});ls.on('close',(code)=>{console.log(`子进程退出,代码为${code}`);});child_process提供了以下同步和异步方式来创建进程。child_process.fork()函数可以让我们实现进程复制其他常见的API解释,推荐阅读文档或者这篇文章Nodejs进阶:如何玩转转子进程(child_process)execSync参考exec和exec的区别spawnNode.js中spawn和exec的异同
