内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

node的異步機(jī)制是什么

這篇“node的異步機(jī)制是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“node的異步機(jī)制是什么”文章吧。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括高港網(wǎng)站建設(shè)、高港網(wǎng)站制作、高港網(wǎng)頁(yè)制作以及高港網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃等。多年來(lái),我們專(zhuān)注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,高港網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到高港省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

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

node的異步機(jī)制是什么

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

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

  • 簡(jiǎn)單

  • 高性能,避免了頻繁的線程切換開(kāi)銷(xiāo)

  • 占用資源小,因?yàn)槭菃尉€程,在大負(fù)荷情況下,對(duì)內(nèi)存占用仍然很低

  • 線程安全,沒(méi)有加鎖、解鎖、死鎖這些問(wèn)題

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

node使用異步IO和事件驅(qū)動(dòng)(回調(diào)函數(shù))來(lái)解決高并發(fā)這個(gè)問(wèn)題。

一般來(lái)說(shuō),高并發(fā)解決方案會(huì)提供多線程模型,為每個(gè)業(yè)務(wù)邏輯提供一個(gè)線程,通過(guò)系統(tǒng)線程切換來(lái)來(lái)彌補(bǔ)同步I/O調(diào)用的時(shí)間開(kāi)銷(xiāo)。像apache,是一個(gè)請(qǐng)求一個(gè)線程。

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

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

node的異步機(jī)制是什么

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

事件循環(huán)機(jī)制

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

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

node的異步機(jī)制是什么

以上就是關(guān)于“node的異步機(jī)制是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標(biāo)題:node的異步機(jī)制是什么
URL鏈接:http://www.rwnh.cn/article2/jsdsic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、微信公眾號(hào)網(wǎng)站排名、Google、移動(dòng)網(wǎng)站建設(shè)動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
渑池县| 阿勒泰市| 昌平区| 芒康县| 永川市| 青川县| 甘南县| 阿拉尔市| 青田县| 吉木乃县| 沂源县| 桃园市| 恭城| 涞水县| 阿尔山市| 建平县| 泗洪县| 会东县| 英吉沙县| 华容县| 霍城县| 临湘市| 泸定县| 雅安市| 清河县| 吉隆县| 北京市| 如皋市| 萍乡市| 辽阳县| 临高县| 富宁县| 达孜县| 桦川县| 丁青县| 饶阳县| 金寨县| 宁陕县| 周宁县| 申扎县| 留坝县|