最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js如何充分利用多核cpu

 更新時(shí)間:2021年04月28日 15:19:00   作者:淺笑·  
這篇文章主要介紹了node.js如何充分利用多核cpu,想了解node.js的同學(xué),可以參考下

概述

Nodejs是基于chrome瀏覽器的V8引擎構(gòu)建的,也就說明它的模型與瀏覽器是類似的。我們的JavaScript會運(yùn)行在單個(gè)進(jìn)程的單個(gè)線程上。

但是V8引擎的單進(jìn)程單線程并不是完美的結(jié)構(gòu),現(xiàn)如今CPU基本上都是多核的。真正的服務(wù)器往往有好幾個(gè)CPU(像我們的線上物理機(jī)有12個(gè)核),所以,這就將拋出Nodejs實(shí)際應(yīng)用中的一個(gè)問題:“如何充分利用多核CPU服務(wù)器?”

從嚴(yán)格意義上來講,Node其實(shí)并不是真正的單線程架構(gòu),因?yàn)镹ode自身還有I/O線程存在(網(wǎng)絡(luò)I/O、磁盤I/O),這些I/O線程是由更底層的libuv處理,這部分線程對于JavaScript開發(fā)者來說是透明的。JavaScript代碼永遠(yuǎn)運(yùn)行在V8上,是單線程的。所以表面上來看NodeJS是單線程的。

node.js充分利用多核cpu的方法

面對單進(jìn)程單線程對多核使用率不高的問題,按照之前的經(jīng)驗(yàn),每個(gè)進(jìn)程各使用一個(gè)CPU即可,以此實(shí)現(xiàn)多核CPU的利用。Node提供了child_process模塊,并且也提供了fork()方法來實(shí)現(xiàn)進(jìn)程的復(fù)制(只要是進(jìn)程復(fù)制,都需要一定的資源和時(shí)間。Node復(fù)制進(jìn)程需要不小于10M的內(nèi)存和不小于30ms的時(shí)間)。

這樣的解決方案就是*nix系統(tǒng)上最經(jīng)典的Master-Worker模式,又稱為主從模式。

這種典型并行處理業(yè)務(wù)模式的分布式架構(gòu)具備較好的可伸縮性(可伸縮性實(shí)際上是和并行算法以及并行計(jì)算機(jī)體系結(jié)構(gòu)放在一起討論的。某個(gè)算法在某個(gè)機(jī)器上的可擴(kuò)放性反映該算法是否能有效利用不斷增加的CPU。)和穩(wěn)定性。

主進(jìn)程不負(fù)責(zé)具體的業(yè)務(wù)處理,而是負(fù)責(zé)調(diào)度和管理工作進(jìn)程,工作進(jìn)程負(fù)責(zé)具體的業(yè)務(wù)處理,所以,工作進(jìn)程的穩(wěn)定性是開發(fā)人員需要關(guān)注的。

通過fork()復(fù)制的進(jìn)程都是一個(gè)獨(dú)立的進(jìn)程,這個(gè)進(jìn)程中有著獨(dú)立而全新的V8實(shí)例。雖然Node提供了fork()用來復(fù)制進(jìn)程使每個(gè)CPU內(nèi)核都使用上,但是依然要記住fork()進(jìn)程代價(jià)是很大的。好在Node通過事件驅(qū)動在單個(gè)線程上可以處理大并發(fā)的請求。

注意:這里啟動多個(gè)進(jìn)程只是為了充分將CPU資源利用起來,而不是為了解決并發(fā)問題。

Node創(chuàng)建子進(jìn)程的4種方式

1、spawn()

創(chuàng)建一個(gè)子進(jìn)程來執(zhí)行命令

2、exec()

創(chuàng)建一個(gè)子進(jìn)程來執(zhí)行命令,和spawn()不同的是方法參數(shù)不同,它可以傳入回調(diào)函數(shù)來獲取子進(jìn)程的狀態(tài)

3、execFile()

啟動一個(gè)子進(jìn)程來執(zhí)行指定文件。注意,該文件的頂部必須聲明SHEBANG符號(#!)用來指定進(jìn)程類型。

4、fork()

和spawn()類似,不同點(diǎn)在于它創(chuàng)建Node的子進(jìn)程只需要執(zhí)定要執(zhí)行的JavaScript文件模塊即可。

注意:后面的3種方法都是spawn()的延伸應(yīng)用。

以上就是node.js如何充分利用多核cpu的詳細(xì)內(nèi)容,更多關(guān)于node.js充分利用多核cpu的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于node+websocket+html實(shí)現(xiàn)騰訊課堂聊天室聊天功能

    基于node+websocket+html實(shí)現(xiàn)騰訊課堂聊天室聊天功能

    這篇文章主要介紹了基于node+websocket+html實(shí)現(xiàn)騰訊課堂聊天室聊天功能,本文通過截圖實(shí)例代碼給大家介紹的非常詳細(xì),對大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • nodejs處理tcp連接的核心流程

    nodejs處理tcp連接的核心流程

    這篇文章主要介紹了nodejs處理tcp連接的核心流程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Node 模塊原理與用法詳解

    Node 模塊原理與用法詳解

    這篇文章主要介紹了Node 模塊原理與用法,結(jié)合實(shí)例形式詳細(xì)分析了node.js模塊基本概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • node.js微信公眾平臺開發(fā)教程

    node.js微信公眾平臺開發(fā)教程

    這篇文章主要為大家分享了node.js微信公眾平臺開發(fā)教程,如何進(jìn)行微信開發(fā),感興趣的小伙伴們可以參考一下
    2016-03-03
  • 前端包管理器npm、Yarn和pnpm的超全面比較

    前端包管理器npm、Yarn和pnpm的超全面比較

    NPM(Node Package Manager)是Node.js默認(rèn)的包管理器,這篇文章主要給大家介紹了關(guān)于前端包管理器npm、Yarn和pnpm的超全面比較,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • 使用Node.js獲取電腦配置信息的實(shí)現(xiàn)方法(CPU型號、內(nèi)存大小、磁盤類型等)

    使用Node.js獲取電腦配置信息的實(shí)現(xiàn)方法(CPU型號、內(nèi)存大小、磁盤類型等)

    在日常的開發(fā)工作中,我們有時(shí)需要了解電腦的硬件配置,比如CPU型號、內(nèi)存大小、磁盤類型等,這些信息對于性能優(yōu)化、系統(tǒng)配置等場景非常重要,今天,我們就來聊聊如何用Node.js輕松獲取這些信息,感興趣的小伙伴跟著小編一起來看看吧
    2025-04-04
  • Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解

    Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解

    這篇文章主要介紹了Node.js中使用計(jì)時(shí)器定時(shí)執(zhí)行函數(shù)詳解,本文使用了Node.js中的setTimeout和setInterval函數(shù),需要的朋友可以參考下
    2014-08-08
  • Koa2微信公眾號開發(fā)之本地開發(fā)調(diào)試環(huán)境搭建

    Koa2微信公眾號開發(fā)之本地開發(fā)調(diào)試環(huán)境搭建

    本篇文章主要介紹了Koa2微信公眾號開發(fā)之本地開發(fā)調(diào)試環(huán)境搭建,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • node跨域請求方法小結(jié)

    node跨域請求方法小結(jié)

    本篇文章主要介紹了node跨域請求方法小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 淺談node模塊與npm包管理工具

    淺談node模塊與npm包管理工具

    這篇文章主要介紹了node模塊與npm包管理工具,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01

最新評論

柳江县| 清水河县| 磐石市| 略阳县| 安宁市| 咸阳市| 乌苏市| 海安县| 石台县| 淮南市| 韶关市| 汝州市| 龙南县| 马尔康县| 昆明市| 普宁市| 康平县| 乃东县| 正安县| 凉城县| 额敏县| 宁阳县| 温宿县| 荔波县| 体育| 资中县| 娱乐| 新兴县| 新昌县| 花莲县| 民权县| 噶尔县| 本溪市| 延津县| 神农架林区| 象州县| 沙洋县| 三门峡市| 荔波县| 南漳县| 黑龙江省|