Node.js 是一個基於 Chrome V8 引擎的 JavaScript 運行環境。
Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型,使其輕量又高效。javascript
上述內容是node.js的介紹,node.js基於typescript編寫,typesript是javascript的超集,因此node.js是單線程應用程序,那咱們介紹一下-->什麼是事件驅動。java
ps:typescript是由微軟開發的開源javascript的超集框架,可是不是很嚴格的使用javascript,有興趣的能夠百度瞭解下,node
事件驅動,個人我的理解就是,須要他的時候執行,不須要的時候不執行。typescript
何時須要他呢,當你點擊你的鍵盤,這個時候監聽機制可能會監聽你幹了什麼,若是你不點擊,他一直監聽,反而會浪費內存,影響計算機的運行速度,而當你使用時間驅動,例如node.js會建立一個循環,在循環中會查看事件隊列是否有須要執行的,有須要執行的再去執行相關函數,能夠有效的節省計算機內存,框架
後面的非阻塞I/O;異步
那咱們介紹一下什麼是非阻塞式I/O呢 ,函數
異步的去執行各個事件,當你點擊了一個按鍵,node.js會在線程pool裏放置一個等待執行的事件,若是遇到不少個按鍵一塊兒調用,這時就須要異步的來獲取到底同一時間幹了什麼。線程
根據上圖瞭解,是node.js調用異步方法,來進行其餘操做,最後經過回調函數,來返回執行的內容,blog
找了一些百度文檔,node.js利用單線程,遠離死鎖、狀態同步問題,利用異步I/O,讓單線程遠離阻塞,這將會更好的使用系統內存,隊列
以上便是本人對node.js的一些基本瞭解;