This time I will bring you a detailed explanation of the resource sharing steps between the NodeJS parent process and the child process. What are the precautions for resource sharing between the NodeJS parent process and the child process? The following is a practical case, let's take a look.
Experimental goal: Realize resource sharing between parent process and child process
Using module: cluster
Introduction:Establish a node cluster to implement multi-process, use child_process to implement IPC and solve multi-core Utilization, improve performance.
Principle:
1 Multi-process architecture of Master-worker master-slave mode2fork() Copy the process to make full use of CPU resources (determined by the number of cores)
event and send, message delivery is achieved to achieve the effect of resource sharing
4 globalDataError is the wrong resource sharing method, and globalDataSuccess is the correct resource sharing method.Implementation code:
var cluster = require('cluster'); var cpus = require('os').cpus(); // 传递的事件名 var triggerEvent = { inc: 'inc', dec: 'dec' } // 错误的数据共享方式 var globalDataError = 0; if (cluster.isMaster) { // 正确的数据共享方式 var globalDataSuccess = 0; globalDataError++; // 启动多个进程,取决于内核数 for (var i = 0; i < cpus.length; i++) { var worker = cluster.fork(); worker.on('message', function(msg) { switch (msg) { case triggerEvent.inc: globalDataSuccess++; console.log('globalDataSuccess = ', globalDataSuccess); break; case triggerEvent.dec: globalDataSuccess--; console.log('globalDataSuccess = ', globalDataSuccess); break; } }); } console.log('Master globalDataError = ', globalDataError); } else { globalDataError++; console.log('Worker globalDataError = ', globalDataError); process.send(triggerEvent.dec); process.send(triggerEvent.inc); }
axios sends a post request and submits the image form with a detailed explanation of the steps
axios post method submits the formdata with a detailed explanation
The above is the detailed content of Detailed explanation of resource sharing steps between NodeJS parent process and child process. For more information, please follow other related articles on the PHP Chinese website!