中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node能高并發的原因是什么

發布時間:2022-04-22 15:05:13 來源:億速云 閱讀:187 作者:zzz 欄目:web開發

本篇內容主要講解“node能高并發的原因是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“node能高并發的原因是什么”吧!

因為node具有“事務驅動”和異步“I/O”特性,是非阻塞異步操作;針對每個并發請求,服務端給請求注冊一個激發事件,并給一個回調函數,按順序執行事件處理,處理完成后執行回調函數,接著執行下一個事件處理,所以node能夠高并發。

本教程操作環境:windows10系統、nodejs 12.19.0版本、Dell G3電腦。

為什么node能高并發

nodejs是非阻塞異步操作。針對每個并發請求,服務端給請求注冊一個激發事件(I/O),并給一個回調函數(這個過程沒有阻塞新的連接請求)。按順序執行事件處理(I/O),處理完成后執行回調函數,接著執行下一個事件處理(I/O)。

在解釋node為什么能夠做到高并發之前,不妨先了解一下node的其他幾個特性:

單線程

我們先來明確一個概念,即:node是單線程的,這一點與JavaScript在瀏覽器中的特性相同,并且在node中JavaScript主線程與其他線程(例如I/O線程)是無法共享狀態的。

單線程的好處就是:

  • 無需像多線程那樣去關注線程之間的狀態同步問題

  • 沒有線程切換所帶來的開銷

  • 沒有死鎖存在

當然單線程也有許多壞處:

  • 無法充分利用多核CPU

  • 大量計算占用CPU會導致應用阻塞(即不適用CPU密集型)

  • 錯誤會引起整個應用的退出

異步I/O

你可能會問,既然node是單線程的,事件全部在一個線程上處理,那不是應該效率很低、與高并發相悖嗎?

恰恰相反,node的性能很高。原因之一就是node具有異步I/O特性,每當有I/O請求發生時,node會提供給該請求一個I/O線程。然后node就不管這個I/O的操作過程了,而是繼續執行主線程上的事件,只需要在該請求返回回調時在處理即可。也就是node省去了許多等待請求的時間。

這也是node支持高并發的重要原因之一

實際上不光是I/O操作,node的絕大多數操作都是以這種異步的方式進行的。它就像是一個組織者,無需事必躬親,只需要告訴成員們如何正確的進行操作并接受反饋、處理關鍵步驟,就能使得整個團隊高效運行。

事務驅動

你可能又要問了,node怎么知道請求返回了回調,又應該何時去處理這些回調呢?

答案就是node的另一特性:事務驅動,即主線程通過event loop事件循環觸發的方式來運行程序

這是node支持高并發的另一重要原因

node能高并發的原因是什么

到此,相信大家對“node能高并發的原因是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

濉溪县| 苏州市| 星子县| 长兴县| 太谷县| 达孜县| 遂宁市| 娱乐| 宣恩县| 土默特左旗| 新沂市| 合水县| 衡山县| 屏东县| 六安市| 观塘区| 邳州市| 江华| 五大连池市| 定日县| 清流县| 阿合奇县| 庆元县| 通山县| 攀枝花市| 永城市| 渭南市| 旬邑县| 安庆市| 调兵山市| 桂林市| 瑞昌市| 喜德县| 金溪县| 万宁市| 海口市| 南澳县| 富锦市| 疏附县| 平湖市| 弋阳县|