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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

nodeJS理解

發布時間:2023/12/10 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodeJS理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nodejs是一個基于Chrome V8 引擎的JS運行環境,也就是讓javascript運行在服務器(server)端
NodeJS使用了一個事件驅動,非阻塞式的I/O模型,使得其輕量又高效。
Nodejs包管理器npm是全球最大的開源生態系統。

nodejs是服務端的js平臺。

npm grunt express 等強大的代碼與項目管理應用在nodeJS上。

關于NodeJS與傳統服務器處理平臺(Apache)的區別

Apache的多線程高并發模式

Apache是一種多線程處理并發,但是在一些大型的web應用上也會發生阻塞。

線程和進程

線程是可以獨立運行的最小的CPU單位。
線程可以在同一個進程中并發運行,并共享該進程下的內存地址空間。

進程可以支持多個線程,它們看似同時執行,但是相互之間并不同步。
一個進程中的多個線程共享相同的內存地址空間,意味著可以訪問相同的變量和對象,并且從同一堆中分配對象。

這樣讓線程之間共享信息變得容易,但是也要確保他們不會妨礙同一進程中想的其他線程。

NodeJS的異步I/O原理

用數據庫的調用舉例:

Apache,執行到第一個線程的時候會等待query返回結果,一方面會導致線程長期阻塞等待,另一方面會為了新請求不斷增加線程,會浪費大量的資源,同時線程增加會占用大量的CPU時間來處理內存上下文切換。

NodeJS是異步單線程的,應用的是異步回調的方法,也就是異步的I/O
解釋:當進程執行的時候,不會等待結果的返回,而是直接執行下面的語句,直到進入事件循環,當數據庫執行返回結果的時候會將事件發送到事件隊列,等線程進入事件循環之后才會調用之前的回調函數。
也就是nodejs的工作原理其實就是事件循環。每一條nodejs的邏輯都是寫在回調函數里面的,而回調函數都是返回之后才異步執行的。

NodeJS也會發生阻塞,但是阻塞發生在自己的單個線程當中,不是發生在后續回調的流程當中。

與php區別

用node來做網站開應用的是分塊加載的模式,不用像php那樣把所有的數據一次性加載到客戶端。

NodeJS相比于php和Apache開的新線程來講,節省了CPU內存和上下文切換的時間。

NodeJS的應用場景

NodeJs適合應用在具有大量的細小的http請求環境下,例如web的即時聊天程序,或者上萬人同時在線的游戲服務器。不用考慮http請求次數過多的問題。

轉載于:https://www.cnblogs.com/this-xiaoming/p/5845099.html

總結

以上是生活随笔為你收集整理的nodeJS理解的全部內容,希望文章能夠幫你解決所遇到的問題。

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