站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

node的異步機制是基于什么

node的異步機制是基于“事件”的,所有的I/O、網(wǎng)絡(luò)通信、數(shù)據(jù)庫查詢都以非阻塞的方式執(zhí)行,返回結(jié)果由事件循環(huán)來處理。Node在同一時刻只會處理一個事件,完成后立即進(jìn)入事件循環(huán)檢查后面事件。這樣CPU和內(nèi)存在同一時間集中處理一件事,同時盡量讓耗時的I/O等操作并行執(zhí)行。

node的異步機制是基于什么

本教程操作環(huán)境:windows7系統(tǒng)、nodejs16版,DELL G3電腦。

NodeJS是單線程,單線程有以下好處:

  • 簡單

  • 高性能,避免了頻繁的線程切換開銷

  • 占用資源小,因為是單線程,在大負(fù)荷情況下,對內(nèi)存占用仍然很低

  • 線程安全,沒有加鎖、解鎖、死鎖這些問題

如何解決高并發(fā)?

node使用異步IO和事件驅(qū)動(回調(diào)函數(shù))來解決高并發(fā)這個問題。

一般來說,高并發(fā)解決方案會提供多線程模型,為每個業(yè)務(wù)邏輯提供一個線程,通過系統(tǒng)線程切換來來彌補同步I/O調(diào)用的時間開銷。像apache,是一個請求一個線程。

而NodeJS使用的是單線程模型,對所有I/O都采用異步的請求方式,避免頻繁的上下文切換,在NodeJS執(zhí)行的時候維護著一個事件隊列;程序在執(zhí)行時進(jìn)入事件循環(huán)等待下一個事件到來,每個異步I/O請求完成后都會被推送到事件隊列中的等待執(zhí)行。

NodeJS的異步機制是基于事件的,所有的I/O、網(wǎng)絡(luò)通信、數(shù)據(jù)庫查詢都以非阻塞的方式執(zhí)行,返回結(jié)果由事件循環(huán)來處理。如圖:

node的異步機制是基于什么

Node.js 進(jìn)程在同一時刻只會處理一個事件,完成后立即進(jìn)入事件循環(huán)檢查后面事件。這樣做的好處是,CPU和內(nèi)存在同一時間集中處理一件事,同時盡量讓耗時的I/O等操作并行執(zhí)行。對于低速連接攻擊,Node.js只是在事件隊列中增加請求,等待操作系統(tǒng)的回應(yīng),因而不會有任何多線程開銷,很大程度上可以提高 Web 應(yīng)用的健壯性,防止惡意攻擊。

事件循環(huán)機制

所謂事件循環(huán)是指NodeJS會把所有的異步操作使用事件機制解決,有個線程在不斷地循環(huán)檢測事件隊列。

NodeJS中所有的邏輯都是事件的回調(diào)函數(shù),所以NodeJS始終在事件循環(huán)中,程序入口就是事件循環(huán)第一個事件的回調(diào)函數(shù)。事件的回調(diào)函數(shù)中可能會發(fā)出I/O請求或直接發(fā)射( emit)事件,執(zhí)行完畢后返回事件循環(huán)。事件循環(huán)會檢查事件隊列中有沒有未處理的事件,直到程序結(jié)束。NodeJS的事件循環(huán)對開發(fā)者不可見,由libev庫實現(xiàn),libev不斷檢查是否有活動的、可供檢測的事件監(jiān)聽器,直到檢查不到時才退出事件循環(huán),程序結(jié)束。

node的異步機制是基于什么

贊(0)
分享到: 更多 (0)
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
日韩一级黄色录像| 久久精品国产99久久99久久久| 国产成人无码aa精品一区| 亚洲区日韩精品中文字幕| 无码国内精品久久人妻| 69久久夜色精品国产69 | 亚洲精品V欧洲精品V日韩精品| 国产日韩精品视频| 青青热久久久久综合精品| 精品国产一区二区三区在线观看| 久久精品久久精品久久精品 | 日韩午夜在线视频不卡片| 久久精品一本到99热免费| 91自产拍在线观看精品| heyzo亚洲精品日韩| 久久精品国产久精国产| 日日夜夜精品免费视频| 精品91自产拍在线观看| 日韩免费精品视频| 国内揄拍国内精品少妇国语| 日韩一区二区三区免费播放| 久クク成人精品中文字幕| 中文字幕精品在线| 久久精品嫩草影院| 精品国产乱码久久久久久1区2区 | 亚洲国产精品yw在线观看| 亚洲日韩亚洲另类激情文学| 思思re热免费精品视频66| 国产成人精品2021| 久久久精品中文字幕麻豆发布 | 国产精品视频永久免费播放| 日韩精品久久久久久| 久久精品国产一区二区三区不卡 | 亚洲国产精品热久久| 国内精品51视频在线观看| 中文国产成人精品久久一区| 久久久久国产精品嫩草影院 | 国产大片51精品免费观看| 久久久一本精品99久久精品66直播| 亚洲精品白浆高清久久久久久| 国产成人精品久久一区二区三区av|