国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

NodeJS父進程與子進程資源共享原理與實現方法

2024-05-06 16:43:11
字體:
來源:轉載
供稿:網友

本文實例講述了NodeJS父進程與子進程資源共享原理與實現方法。分享給大家供大家參考,具體如下:

實驗目標:實現父進程與子進程間資源共享

使用模塊:cluster

簡介:建立node集群,實現多進程,利用child_process來實現IPC,解決多核利用率,提高性能。

原理:

1 Master-worker主從模式的多進程架構

2 fork()復制進程,充分利用cpu資源(根據內核數決定)

3 每個進程都有自己的區域,如果在各自區域內執行操作,資源并未共享。通過監聽message事件和send實現消息傳遞,達到資源共享的效果

4  globalDataError為錯誤的資源共享方式, globalDataSuccess為正確的資源共享方式。

實現代碼:

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);}

希望本文所述對大家nodejs程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙口市| 高阳县| 来凤县| 耒阳市| 亚东县| 金坛市| 兴安盟| 宣威市| 贵德县| 崇仁县| 托克托县| 博兴县| 驻马店市| 南丰县| 富顺县| 鹤峰县| 伽师县| 远安县| 嘉义市| 铜陵市| 于田县| 崇礼县| 石门县| 噶尔县| 沁源县| 泸西县| 富宁县| 普洱| 安康市| 军事| 关岭| 元谋县| 丹东市| 和静县| 信丰县| 财经| 罗甸县| 高淳县| 克什克腾旗| 玉树县| 砚山县|