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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

node.js异步式IO与事件式编程

發布時間:2024/8/23 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 node.js异步式IO与事件式编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Node.js最大的特性就是異步式I/O與事件緊密結合的編程模式。這種模式與傳統的同步式IO線性的編程思路有很大的不同,因為控制流很大程度上要靠事件和回調函數來組織,一個邏輯要拆分為若干個單元格。 內容:阻塞和線程 1.同步式I/O或阻塞式I/O 線程在執行中如果遇到磁盤讀寫或網絡通信,通常要耗費較長時間。這時操作系統會剝奪這個線程的CPU控制權,使其暫停執行,同時將資源讓給其他的工作線程,這種線程調度方式成為阻塞,當I/O操作完畢時,操作系統將這個線程的阻塞狀態解除,恢復其對CPU的控制權、令其繼續執行。 2.異步式I/O或非阻塞式I/O 針對所有I/O操作不采用阻塞策略,當線程遇到I/O操作時,不會以阻塞的方式等待I/O操作的完成或數據的返回,而只是講IO請求發送給操作系統,繼續執行下一條語句,當操作系統完成IO操作時,以事件的形式通知執行IO操作的線程,線程會在特定時候處理這個事件,為了 處理異步IO,線程必須有事件循環,不斷的檢查有沒有未處理的事件,依次予以處理。 3.非阻塞與阻塞模式區別 非阻塞模式下,一個線程永遠在執行計算操作,這個線程所使用的CPU核心利用率永遠是100%,IO以事件的方式通知。 阻塞模式下,多線程往往能提高系統吞吐量,因為一個線程阻塞還有其他線程在工作,多線程可以讓CPU資源不被阻塞中的線程浪費。 調度:當前一個工作,在5分鐘之后執行 4.同步式IO與異步式IO區別 同步式IO(阻塞式)??????????????????????????????????????????????????????????異步式IO(非阻塞) 利用多線程提供吞吐量??????????????????????????????????????????單線程即可實現高吞吐量 通過事件片分割和線程調度利用多核CPU????????????通過功能劃分利用多核 需要由操作系統調度多線程使用多核CPU????????????可以將單線程綁定到單核CPU 難以充分利用CPU資源????????????????????????????????????????????可以充分利用CPU資源 內存軌跡大,數據局部性弱????????????????????????????????????內存軌跡小,數據局部性強???? ?符合線性的編程思維????????????????????????????????????????????????不符合傳統編程思維

總結

以上是生活随笔為你收集整理的node.js异步式IO与事件式编程的全部內容,希望文章能夠幫你解決所遇到的問題。

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