国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:25:53
文檔

Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹

Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹:Node.js應(yīng)該是當(dāng)今最火熱的技術(shù)之一。本文主要介紹Node.js的特點(diǎn)及應(yīng)用場(chǎng)景。Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的一個(gè)平臺(tái),用來(lái)方便地搭建快速的 易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js借助事件驅(qū)動(dòng),非阻塞I/O模型變得輕量和高效,非常適合 運(yùn)行在分
推薦度:
導(dǎo)讀Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹:Node.js應(yīng)該是當(dāng)今最火熱的技術(shù)之一。本文主要介紹Node.js的特點(diǎn)及應(yīng)用場(chǎng)景。Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的一個(gè)平臺(tái),用來(lái)方便地搭建快速的 易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js借助事件驅(qū)動(dòng),非阻塞I/O模型變得輕量和高效,非常適合 運(yùn)行在分
Node.js應(yīng)該是當(dāng)今最火熱的技術(shù)之一。本文主要介紹Node.js的特點(diǎn)及應(yīng)用場(chǎng)景。

Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的一個(gè)平臺(tái),用來(lái)方便地搭建快速的 易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js借助事件驅(qū)動(dòng),非阻塞I/O模型變得輕量和高效,非常適合 運(yùn)行在分布式設(shè)備的數(shù)據(jù)密集型實(shí)時(shí)應(yīng)用。

1. 特點(diǎn)

1.1 異步I/O

所謂的異步I/O,是相對(duì)同步I/O而言的。程序執(zhí)行過(guò)程中必然要進(jìn)行很多I/O操作,如讀寫(xiě)文件、輸入輸出、請(qǐng)求響應(yīng)等等。通常來(lái)說(shuō),I/O操作是非常費(fèi)時(shí)的。例如在傳統(tǒng)的編程模式中,你要讀一個(gè)幾G的文件,整個(gè)線程都暫停下來(lái),等待文件讀完后繼續(xù)執(zhí)行。換言之,I/O操作阻塞了代碼的執(zhí)行,極大地降低了程序的效率。

關(guān)于異步I/O,其實(shí)對(duì)于前端工程師來(lái)說(shuō)并不陌生,因?yàn)榘l(fā)起Ajax請(qǐng)求就是最常見(jiàn)的一種“異步”調(diào)用。在Node中,以讀取文件(讀文件是一種耗時(shí)的I/O操作)為例,它與發(fā)起Ajax請(qǐng)求的寫(xiě)法很像:

var fs = require('fs');
fs.readFile('/path', function(err, file) {
 console.log('讀取文件完成');
});
console.log('開(kāi)始讀取文件');

上述代碼在調(diào)用fs.readFile后,后續(xù)代碼是被立即執(zhí)行的,“讀取文件完成”的時(shí)刻是無(wú)法預(yù)知的。當(dāng)線程遇到I/O操作時(shí)不會(huì)以阻塞的方式等待I/O操作結(jié)束,而只是將I/O請(qǐng)求發(fā)送給操作系統(tǒng),繼續(xù)執(zhí)行后續(xù)語(yǔ)句。當(dāng)操作系統(tǒng)完成I/O操作時(shí)以事件的形式通知執(zhí)行I/O操作的線程,線程會(huì)在特定時(shí)間處理這個(gè)事件。

1.2 事件循環(huán)與回調(diào)函數(shù)

所謂事件循環(huán)是指Node會(huì)把所有的異步操作使用事件機(jī)制解決,有個(gè)線程在不斷地循環(huán)檢測(cè)事件隊(duì)列。事件循環(huán)會(huì)檢查事件隊(duì)列中有沒(méi)有未處理的事件,直到程序結(jié)束。事件的編程方式具有輕量級(jí)、松耦合、只關(guān)注事務(wù)點(diǎn)等優(yōu)勢(shì),但是在多個(gè)異步任務(wù)的場(chǎng)景下,事件與事件之間各自獨(dú)立,如何協(xié)作是一個(gè)問(wèn)題。在Javascript中,回調(diào)函數(shù)無(wú)處不在,回調(diào)函數(shù)是最好的接受異步調(diào)用返回?cái)?shù)據(jù)的方式。

1.3 單線程

Node保持了JS在瀏覽器中單線程的特點(diǎn)。單線程的最大好處是不用像多線程編程那樣出處在意狀態(tài)的同步問(wèn)題,沒(méi)有死鎖的存在,也沒(méi)有線程上下文切換的開(kāi)銷(xiāo)。單線程也有其弱點(diǎn),主要表現(xiàn)在三方面:無(wú)法利用多核CPU;錯(cuò)誤會(huì)引起整個(gè)應(yīng)用退出,應(yīng)用的健壯性值得考研;大量計(jì)算會(huì)占用CPU導(dǎo)致無(wú)法繼續(xù)調(diào)用異步I/O。

為了解決上述問(wèn)題,Node采用了與HTML5 Web Workers相同的思路,使用child_process來(lái)解決但單線程中大計(jì)算量的問(wèn)題。通過(guò)將計(jì)算分發(fā)到各個(gè)子進(jìn)程,可以將大量計(jì)算分解掉,然后再通過(guò)進(jìn)程之間的事件消息來(lái)傳遞結(jié)果。

1.4 跨平臺(tái)

Node是跨平臺(tái)的,即同樣的一套JS代碼都可以部署運(yùn)行在Windows、Linux、OSX等平臺(tái)。這主要得益于Node在操作系統(tǒng)與Node上層模塊系統(tǒng)之間構(gòu)建了一層平臺(tái)層架構(gòu)libuv。

Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹

2. 應(yīng)用場(chǎng)景

1)、實(shí)時(shí)應(yīng)用:如在線聊天,實(shí)時(shí)通知推送等等(如socket.io)
2)、分布式應(yīng)用:通過(guò)高效的并行I/O使用已有的數(shù)據(jù)
3)、工具類應(yīng)用:海量的工具,小到前端壓縮部署(如grunt),大到桌面圖形界面應(yīng)用程序
4)、游戲類應(yīng)用:游戲領(lǐng)域?qū)?shí)時(shí)和并發(fā)有很高的要求(如網(wǎng)易的pomelo框架)
5)、利用穩(wěn)定接口提升Web渲染能力
6)、前后端編程語(yǔ)言環(huán)境統(tǒng)一:前端開(kāi)發(fā)人員可以非常快速地切入到服務(wù)器端的開(kāi)發(fā)(如著名的純Javascript全棧式MEAN架構(gòu))

更多Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹相關(guān)文章請(qǐng)關(guān)注PHP中文網(wǎng)!

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹

Node.js的特點(diǎn)和應(yīng)用場(chǎng)景介紹:Node.js應(yīng)該是當(dāng)今最火熱的技術(shù)之一。本文主要介紹Node.js的特點(diǎn)及應(yīng)用場(chǎng)景。Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的一個(gè)平臺(tái),用來(lái)方便地搭建快速的 易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js借助事件驅(qū)動(dòng),非阻塞I/O模型變得輕量和高效,非常適合 運(yùn)行在分
推薦度:
  • 熱門(mén)焦點(diǎn)

最新推薦

猜你喜歡

熱門(mén)推薦

專題
Top
主站蜘蛛池模板: 国产女同一区二区三区五区 | 久久国产精品免费一区二区三区 | 亚洲一区日韩二区欧美三区 | 91sao国产在线观看 | 国产精选在线 | 视频在线一区 | 毛片官网 | 青草九九 | 伊人精品在线视频 | 久久se精品一区二区国产 | 日韩在线亚洲 | 久久精品亚洲一区二区三区浴池 | 日韩免费一区二区三区 | 久久精品视频一区二区三区 | 国产日韩欧美一区二区 | 国产高清在线免费视频 | 国产2区| 可以免费观看的毛片 | 国产一区二区三区欧美 | 欧美日视频 | 亚洲欧美视频 | 亚洲视频在线看 | 国产精品一区二区三区四区五区 | 99精品国产成人一区二区 | 亚洲国产精久久久久久久 | 亚洲国产精品嫩草影院久久 | 欧美精品在线看 | 国产亚洲综合成人91精品 | 国内精品视频一区二区三区 | 91在线 一区 二区三区 | 欧美视频在线观看免费 | 久久成人国产精品二三区 | 日韩欧美国产高清 | 国产精品第1页在线观看 | 欧美日韩高清完整版在线观看免费 | 国产精品久久久久免费 | 国产在线观看精品 | 一区二区三区中文字幕 | 99久久精品国产综合一区 | 久久91精品国产91久久跳舞 | 国产精品视频不卡 |