- 使用者體驗
- 資源分配
1. 單執行緒同步程式設計會因i/o導致硬體資源得不到更有的使用
2. 多執行緒也會因為程式設計中的死鎖,狀態同步等問題讓人頭痛
- nodejs給出的解決方案
1.利用單執行緒,原理多執行緒死鎖,狀態同步等問題
2.利用非同步i/o讓單執行緒原理阻塞,更好的使用cpu
3.提供了類似於前端瀏覽器中的web workers的子程序,process_child
1.這種重複呼叫判斷操作是否完成的技術交輪詢
2.事件輪詢的幾種方式
a.read ==> 最原始,效能最低的一種
b.select模式,是在read基礎上的一種改進
c.poll 相比select有所改進,採用的鍊錶的方式避免陣列長度的限制,其次它能避免不要的檢查。但是當檔案描述符較多時,他的效能是十分低下的
d.epoll效率最高的i/o事件通知機制,在進入輪詢的時候沒有檢查到i/o就會進行休眠,直到事件發生將他喚醒。
e.kqueue 改方案與epoll相似,在freebsd系統下存在
事件迴圈 -- 這是node的執行模型,正是他才使得在node中的**函式十分普遍
node程序啟動 > 建立乙個while迴圈,> 迴圈過程為tick ==> 每個tick就是查詢是否有事件待處理,如果有就取出事件及相關的**函式。如果存在關聯的**函式就執行他們。
然後進入下個迴圈,如果不再有事件處理,就退出程序。
3.觀察者 判斷是否有事件需要處理
4.請求物件
5.執行**
事件迴圈,請求物件,**函式,i/o執行緒池構成了node非同步模型的基本要素
《深入淺出nodejs》讀書筆記(2)
本來是想著學學node.js試試的,後來發現node.js才是真正的js啊,它裡面用到了很多我們平時沒用過的js特性,而且還非常優雅,比如它裡面的非同步程式設計思想,總之,深入淺出node.js 絕對值得一看。下面是我的讀書筆記。1.非同步io的優勢 a.從使用者體驗上來說,非同步io在這個資源的獲...
node 《深入淺出nodejs》 讀書筆記
事件驅動是指在持續事務管理過程中,進行決策的一種策略,即跟隨當前時間點上出現的事件,調動可用資源,執行相關任務,使不斷出現的問題得以解決,防止事務堆積。訊息是乙個報告事件發生的通知,訊息驅動是圍繞訊息的產生與處理展開的,並依靠訊息迴圈機制來實現。非阻塞io 單執行緒 多執行緒 死鎖 web work...
深入淺出pmp讀書筆記(三)
深入淺出 pmp 讀書筆記 程序結構 pmp將專案劃分成為一系列程序的集合,程序直接的銜接,就十分重要了。而程序的結構已經專案的知識面就是程序銜接流暢的關鍵。1.程序的結構 pmp為所有的程序都設定了相同的結構,每個程序都由輸入,工具和技術以及輸出三部分組成。a.輸入 程序工作所需要的資訊,資料,檔...