nodejs之child_process
官方api文档:http://nodejs.cn/api/child_process.html
众所周知node.js是基于单线程模型架构,这样的设计可以带来高效的CPU利用率,但是无法却利用多个核心的CPU,为了解决这个问题,node.js提供了child_process模块,通过多进程来实现对多核CPU的利用. child_process模块提供了四个创建子进程的函数,分别是spawn,exec,execFile和fork。
上图已经展示了四种方式的不同,但是我们还是会介绍一下他们的区别:
- spawn : 子进程中执行的是非node程序,提供一组参数后,执行的结果以流的形式返回。
- execFile:子进程中执行的是非node程序,提供一组参数后,执行的结果以回调的形式返回。
- exec:子进程执行的是非node程序,传入一串shell命令,执行后结果以回调的形式返回,与execFile
不同的是exec可以直接执行一串shell命令。 - fork:子进程执行的是node程序,提供一组参数后,执行的结果以流的形式返回,与spawn不同,fork生成的子进程只能执行node应用。接下来的小节将具体的介绍这一些方法。
未完。。。