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

        了解Node中的事件循環(huán)、process.nextTick()

        本篇文章給大家了解一下Nodejs中的事件循環(huán),解析下事件循環(huán)機(jī)制、process.nextTick()等,希望對(duì)大家有所幫助!

        了解Node中的事件循環(huán)、process.nextTick()

        什么是事件循環(huán)

        事件循環(huán)是 Node.js 處理非阻塞 I/O 操作的機(jī)制——盡管 JavaScript 是單線程處理的——當(dāng)有可能的時(shí)候,它們會(huì)把操作轉(zhuǎn)移到系統(tǒng)內(nèi)核中去。

        既然目前大多數(shù)內(nèi)核都是多線程的,它們可在后臺(tái)處理多種操作。當(dāng)其中的一個(gè)操作完成的時(shí)候,內(nèi)核通知 Node.js 將適合的回調(diào)函數(shù)添加到輪詢隊(duì)列中等待時(shí)機(jī)執(zhí)行。我們?cè)诒疚暮竺鏁?huì)進(jìn)行詳細(xì)介紹。

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

        當(dāng) Node.js 啟動(dòng)后,它會(huì)初始化事件循環(huán),處理已提供的輸入腳本(或丟入 REPL,本文不涉及到),它可能會(huì)調(diào)用一些異步的 API、調(diào)度定時(shí)器,或者調(diào)用 process.nextTick(),然后開始處理事件循環(huán)。

        下面的圖表展示了事件循環(huán)操作順序的簡(jiǎn)化概覽。

           ┌───────────────────────────┐ ┌─>│           timers          │ │  └─────────────┬─────────────┘ │  ┌─────────────┴─────────────┐ │  │     pending callbacks     │ │  └─────────────┬─────────────┘ │  ┌─────────────┴─────────────┐ │  │       idle, prepare       │ │  └─────────────┬─────────────┘      ┌───────────────┐ │  ┌─────────────┴─────────────┐      │   incoming:   │ │  │           poll            │<─────┤  connections, │ │  └─────────────┬─────────────┘      │   data, etc.  │ │  ┌─────────────┴─────────────┐      └───────────────┘ │  │           check           │ │  └─────────────┬─────────────┘ │  ┌─────────────┴─────────────┐ └──┤      close callbacks      │    └───────────────────────────┘

        注意:每個(gè)框被稱為事件循環(huán)機(jī)制的一個(gè)階段。

        每個(gè)階段都有一個(gè) FIFO 隊(duì)列來(lái)執(zhí)行回調(diào)。雖然每個(gè)階段都是特殊的,但通常情況下,當(dāng)事件循環(huán)進(jìn)入給定的階段時(shí),它將執(zhí)行特定于該階段的任何操作,然后執(zhí)行該階段隊(duì)列中的回調(diào),直到隊(duì)列用盡或最大回調(diào)數(shù)已執(zhí)行。當(dāng)該隊(duì)列已用盡或達(dá)到回調(diào)限制,事件循環(huán)將移動(dòng)到下一階段,等等。

        由于這些操作中的任何一個(gè)都可能調(diào)度_

        贊(0)
        分享到: 更多 (0)
        網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
        主站蜘蛛池模板: 精品亚洲一区二区三区在线播放 | 久久亚洲国产精品一区二区| 麻豆国内精品欧美在线| 精品三级在线观看| 久久精品国产亚洲av水果派| 久久精品国产只有精品66| 亚洲精品高清久久| 2021久久精品国产99国产精品| 亚洲中文字幕久久精品无码APP | 中文字幕精品一区影音先锋| 国产a∨精品一区二区三区不卡| 人妻少妇精品无码专区动漫| 国产精品性爱| 91麻豆精品一二三区在线| 91精品一区国产高清在线| 精品无码久久久久久尤物| 亚洲无线观看国产精品| 欧美亚洲另类精品第一页| 精品久久久久中文字| 国产精品男男视频一区二区三区 | 久久久99精品一区二区| 国产精品99久久久久久董美香| 亚洲综合精品香蕉久久网97| 久久99精品国产| 精品亚洲综合在线第一区| 97在线精品视频| 992tv精品视频tv在线观看| 国产精品无码无片在线观看| 久久99精品久久久久久久不卡 | 天天视频国产精品| 久久99精品久久久久久不卡| 久久人人超碰精品CAOPOREN| 久久久久久亚洲精品不卡| 久久精品国产一区二区| 精品视频在线观看你懂的一区| 久久99精品久久久久久9蜜桃| 久久夜色精品国产| 欧美日韩国产中文精品字幕自在自线| 免费精品国产自产拍在线观看| 午夜精品久久久久久久无码| 最新国产精品拍自在线观看|