Node学习记录:child_process

发布时间:2019-07-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Node学习记录:child_process脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

官方文档:https://nodejs.org/api/child_...

关于进程

我们知道,nodejs是在V8 引擎上构建的,所以它也是运行在一个单进程的单线程上。

这样程序是单一的,没有多线程,没有锁,没有线程同步这样那样的问题。操作系统在调度时候也少了上下文切换。

node中一个进程对应一个核

但是现在的CPU都是多核的,真正的服务器(非VPS)还是多CPU的

那我们该如何利用多核CPU服务器?

单线程执行的node,在线程抛出异常没有被捕获时候,会引起整个系统的崩溃

如何保证进程的健壮性和稳定性?

child_process

nodejs是一种单线程模型,我们的javascript程序会运行在单个进程的单个进程上,但是,使用nodejs的child_process模块可以实现多进程任务。利用child_process可以创建子进程,实现子进程和主进程之间的通信。

The child_process module provides the ability to spawn child processes in a manner that is similar, but not identical, to popen(3). This capability is primarily provided by the child_process.spawn() function:
const { spawn } = require('child_process');
const ls = 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(`child process exited with code ${code}`);
});

child_process提供以下同步和异步的方式创建进程

Node学习记录:child_process

其中 child_process.fork() 函数让我们实现进程的复制

其他常见API解释建议看文档 或者 这篇文章Nodejs进阶:如何玩转子进程(child_process)

execSync

Node学习记录:child_process

参考

exec 和 spawn 的区别

脚本宝典总结

以上是脚本宝典为你收集整理的Node学习记录:child_process全部内容,希望文章能够帮你解决Node学习记录:child_process所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: