您好,登錄后才能下訂單哦!
這篇文章主要講解了“Node事件循環的流程是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Node事件循環的流程是什么”吧!
我們都知道目前我們用的應用程序多數是使用事件來驅動的,在我們與應用程序進行交互的過程中,會產生很多很多事件,比如點擊、雙擊、三擊等等等,還有文件讀取完成或某些任務執行過程中會產生很多事件。
我們都知道Node.js是單進程、單線程的,卻能夠實現高并發,這就離不開我們的事件機制。具體來說是通過事件循環來實現的,通過異步回調接口和事件驅動就可以實現高并發。【推薦學習:《nodejs 教程》】
在Node.js單線程運行時,相當于進入了一個“死”循環,在每個異步事件上的回調函數相當于查你手機的女朋友,如果女朋友發現“不好”的東西(事件)發生,就和你吵架(調用回調函數——吵架函數),直到以后都沒有看到這些讓你們吵架的東西(事件)時,就不再看你手機了(退出死循環)。
事件循環通常還會將相應的操作交給操作系統處理,我們也都知道目前操作系統基本上都是多線程的。也就是說我們知道這個名為Node.js的女朋友通常不是簡單看看我們手機就完了,她還聘請專業的監控團隊監控你的手機。這樣就可以監控團隊多個人檢查你的手機信息(操作系統后臺進行處理),當處理完一部分信息立馬通知你女朋友(某個操作被完成,立馬通知Node.js),然后女朋友就會根據信息的性質將打算干的事送入做事隊列(Node.js就會將相關的回調函數添加到輪詢隊列),然后一個一個的執行。
這里有一張Node.js的事件循環簡化圖:
在上圖中,每一個階段都會有一個FIFO的可執行回調函數的隊列,通常情況下當事件循環進入到其中的一個階段,就會執行該階段的操作,再執行該階段的隊列中的回調,一直到隊列結束或者達到回調數的限制,之后事件循環就會進入下一個階段,這樣來回循環。
根據這個圖,我們可以知道事件循環的順序大概是:
收到數據(incoming data)->輪詢(poll)->檢查(check)->關閉回調(close callback)->定時器(timers)->待定回調(pending callbacks)->閑置(idle, prepare)->輪詢(poll)
感謝各位的閱讀,以上就是“Node事件循環的流程是什么”的內容了,經過本文的學習后,相信大家對Node事件循環的流程是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。