Node的多进程和多线程问题
我们知道Node.js是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核cpu的系统上创建多个进程,从而提高性能。
❝面试官:问你Node能开启多线程吗?
你:No problem!
❞
开启多进程
node中开启多进程有两个模块:child_process
模块的cluster
模块。
child_process
模块可以实现子进程,从而实现广义的多进程模式。
在child_process
模块中提供了四个创建子进程的方法,区别如下:
spawn
:子进程中执行的是「非node程序」,提供一组参数后,执行的「结果以流的形式返回」。execFile
:子进程中执行的是「非node程序」,提供一组参数后,执行的「结果以回调的形式返回」。exec
:子进程中执行的是「非node程序」,提供一组「shell命令」,执行的「结果以回调的形式返回」。fork
:子进程中执行的是「node程序」