日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

快速学习nodejs系列:六、nodejs特性3--事件驱动

發布時間:2025/7/25 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 快速学习nodejs系列:六、nodejs特性3--事件驱动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

事件驅動

上一節中,我們提到異步I/O;當I/O處理完畢后,nodejs是怎樣知道I/O已經完成了呢?又是怎樣去處理的呢?答案是:事件驅動(事件循環)機制。

事件驅動:
在nodejs中,當某個I/O執行完畢后,會以事件的形式通知執行I/O操作的線程;而線程去執行對應事件的回調函數。為了處理異步I/O,nodejs線程必須要有事件循環,不斷的檢查有沒有事件要處理,并依次處理。

對于nodejs來說,不論是建立新的請求、提交、獲取數據等,一切的行為都會觸發相應的事件。在同一個時刻,只能執行一個事件的回調函數,但是在執行事件回調的途中,是可以去處理其他事件的(如有新連接),然后返回繼續執行原事件函數,這樣的處理機制,我們稱為事件循環機制。其實在nodejs底層中,有一半的c++代碼,都是在處理事件隊列、回調函數。

好的,到這里我們已經學完了nodejs的3個特性!我們來做個總結
nodejs的特性有3個:單線程、non-blocking I/O(非阻塞I/O)、event-driven(事件驅動);其實這3個特性都是在說同一件事。我們可以這樣理解:nodejs使用的是單線程,如果多個任務(I/O)同時過來了,某個I/O是阻塞的話,那其他任務都會在等,這樣性能就不會高了;這時就要異步I/O了,所有的I/O操作都要異步;這樣異步I/O就好了嗎?還沒完,如果正在執行A任務,這時B的I/O回調了,怎么辦?這就要事件循環了,不管是新用戶連接,還是老用戶I/O完成,都以事件的形式加入事件循環中,等待nodejs調度。(nodejs可以想象成是一個非常非常摳門的老板,只請一個服務員做所有的事情,但工作效率比請多個人還要高)

總結

以上是生活随笔為你收集整理的快速学习nodejs系列:六、nodejs特性3--事件驱动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。