child_process 创建子进程,把任务分配给子进程处理
// parent.jsconst process = require('child_process')const child_process = process.fork(__dirname, './index.js')child_process.send('change')child_process.on('message', str => {console.log('parent', str)})// child.jsprocess.on('message', str => {process.send('change', str)})
exec创建子进程
exec 和 spawn都可以创建子进程
却别:
exec [ɪɡˈzek]
将进程的结果缓存,并将结果返回给回调函数
const {exec, spawn } = require('child_process')exec('cat a.js', readFile)function readFile(err, stdout, stderr) {if(error) {console.log('read a.js error');return;}console.log('stdout', stdout)console.log('stderr', stderr)}
spawn创建子进程
spawn [spɔːn]
返回的是 strim流
const { spawn } = require('child_process')const ls = spawn('ls', ['-a'], {encoding: 'utf8'});ls.stdout.on('data', data => {console.log('stdout', data)})ls.stderr.on('data', data => {console.log('stderr', stderr)})// 关闭流ls.on('close', code => {console.log('close', code)})
workder threads
工作线程
