脚本宝典收集整理的这篇文章主要介绍了Node学习记录:child_process,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
官方文档:https://nodejs.org/api/child_...
关于进程
我们知道,nodejs是在V8 引擎上构建的,所以它也是运行在一个单进程的单线程上。
这样程序是单一的,没有多线程,没有锁,没有线程同步这样那样的问题。操作系统在调度时候也少了上下文切换。
node中一个进程对应一个核
但是现在的CPU都是多核的,真正的服务器(非VPS)还是多CPU的
那我们该如何利用多核CPU服务器?
单线程执行的node,在线程抛出异常没有被捕获时候,会引起整个系统的崩溃
如何保证进程的健壮性和稳定性?
child_process
nodejs是一种单线程模型,我们的javascript程序会运行在单个进程的单个进程上
,但是,使用nodejs的child_process
模块可以实现多进程任务。利用child_proces
s可以创建子进程,实现子进程和主进程之间的通信。
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提供以下同步和异步的方式创建进程
其中 child_process.fork()
函数让我们实现进程的复制
其他常见API解释建议看文档 或者 这篇文章Nodejs进阶:如何玩转子进程(child_process)
execSync
参考
以上是脚本宝典为你收集整理的Node学习记录:child_process全部内容,希望文章能够帮你解决Node学习记录:child_process所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。