国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

Node.js基礎

2024-04-27 15:07:08
字體:
來源:轉載
供稿:網友
nodejs下載地址:http://download.csdn.net/detail/fanpengfei0/97476861.Node.js是什么?    Node.js不是一種獨立的語言,與phpjava、.net即是開發語言也是平臺不同,也不是javaScript的框架 jquery,更不是瀏覽器的庫ExtJs,能不與ExtJs相提并論。Node.js是一個讓Javascript運行在服務端的開發平臺2.Node.js能做什么?    JavaScript是由客戶端而產生,Node.js為網絡而生。       具有復雜邏輯的網站       基于社交網絡的大Web的應用       Web Socket服務器        TCP/UDP套接字應用程序        命令行工具        交互式終端程序        ...    Node.js的產生因素:            V8            javaScript在服務器端空白            事件驅動            CommonJs的規范化3.異步式I/O與事件驅動    Node.js最大的特性就是采用異步式I/O與事件驅動的架構設計。對于高并發的解決方案,傳統的架構是多線程模型,也就是為每個業務邏輯提供一個系統線程,通過系統線程切換來彌補同步式I/O調用時的時間開銷。Node.js使用的單線程模型,在執行的過程中會維護一個事件隊列,程序在執行時在進入時間循環等待下一個事件到來。普通:res=db.query("select * from user")            res.output();        Node.js: res=db.query("select * from user",function(res){    res.output();})程序會自動往下執行。4.瀏覽器引擎革命    Google Chrome的引擎是V8。Node.js 的是引擎引用的就是V8。所以它快,為什么ExtJs在Chrome如此的快,就因為如此。5.部署node.js的環境    Node.js官方:http:/nodejs.org  下載安裝包。安裝后。打開cmd的dos窗口     運行node            console.log("success")1.Hello World    打一個一個文本編輯器,在其中輸入        console.log('Hello World');    并保存為helloworld.js。打開dos窗口進入該文件的目錄運行    node helloworld.js  執行則可以看到輸出的helloworld2.Node.js命令行工具    node  -v  版本    node -e      eval scipt    eval(“console.log('呵呵')”);     例:node -e "console.log('hello world')";   直接執行            node 直接進入編譯模式        console.log("111")        第一行是輸出、第二行是返回值3.建立HTTP服務器    創建一個app.js         var http=require('http')http.createServer(function(req,res){    res.writeHead(200,{'Content-Type':'text/html'});    res.write('<h1>Node.js</h1>');    res.end('<p>PCAT</p>');}).listen(3000);console.log('HTTP server is listening at port 3000.');接下來node  app.js   打開瀏覽器訪問  http://localhost:3000即可。這樣就部署了一個web。比如tomcat、resin更加方便4.調試代碼:npm install -supervisor -g 安裝supervisor 來控制調試代碼。 不需要每次停止重啟node.js的服務使用supervisor app.js啟動 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資源                內存軌跡大,數據局部性弱                                    內存軌跡小,數據局部性強                    符合線性的編程思維                                                不符合傳統編程思維            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 兰西县| 佛冈县| 旺苍县| 玉山县| 甘肃省| 泽州县| 南郑县| 铅山县| 偃师市| 道孚县| 唐河县| 宁远县| 大理市| 巩留县| 金坛市| 扎鲁特旗| 五大连池市| 台北市| 加查县| 常宁市| 惠安县| 平遥县| 三门县| 榆中县| 彩票| 突泉县| 日照市| 华池县| 新乡市| 荆州市| 长沙县| 平原县| 蒙城县| 五莲县| 扎赉特旗| 乾安县| 轮台县| 秭归县| 双流县| 清河县| 苏尼特右旗|