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

首頁 > 學院 > 開發設計 > 正文

【譯】Node.js官方文檔:關于Node.js

2019-11-10 20:13:01
字體:
來源:轉載
供稿:網友

原文地址:https://nodejs.org/en/about/

關于Node.js

作為一個異步事件驅動javaScript執行環境,Node被設計來構建可擴展的網絡應用。在下面這個“hello world”示例中,可以同時處理許多并發連接。根據每個連接請求,Node將會調用對應的回調函數。如果沒有工作需要完成時,Node將會進入休眠狀態。

const http = require('http');const hostname = '127.0.0.1';const port = 3000;const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World/n');});server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`);});

這種編程模型和如今使用廣泛的基于操作系統線程的并發編程模型行程了強烈的對比。基于線程的網絡處理工作非常的低效并且難于使用。此外,Node開發人員得以從考慮各種進程死鎖中解放出來,因為Node中根本就沒有鎖。在Node中幾乎沒有方法會直接操作I/O,因此進程從來不會被阻塞。因為沒有阻塞,用Node開發可擴展的系統非常容易。 如果你覺得以上內容對你而言非常陌生,這里有一篇文章專門介紹“Blocking vs Non-Blocking”(阻塞式編程和非阻塞式編程:https://nodejs.org/en/docs/guides/blocking-vs-non-blocking/)。

Node受到了Ruby的“Event Machine”和Python的“Twisted”非常多的影響,并且Node本身也和這兩種架構非常類似。在此基礎之上,Node對事件模型做了進一步的優化。Node在運行時通過事件循環(event loop)來進行主要操作。在其他系統中當事件處理機制觸發時總是伴隨著阻塞調用。在Node中我們會在腳本開頭通過回調定義系統的常規行為,并且在腳本末尾通過一個阻塞調用形如:EventMachine::run()來啟動一個服務器。Node會在執行完輸入腳本后直接進入事件循環機制。當系統中沒有其他回調需要執行時,Node就會保持事件循環。這一特性正如瀏覽器中的Javascript執行環境—開發人員永遠也看不到事件循環機制的存在。 HTTP是Node中的第一類型,并被設計為流式(streaming)和低延遲。這個特性使得Node非常適用于作為網絡事務和系統框架來開發。 雖然Node在設計之初就盡可能規避線程這個概念,但這并不意味著你不能從多核環境中獲得優勢。子進程可以通過調用非常簡單的child_PRocess.fork()API而被大量生產出來。另一個基于相同接口的cluster模型,能提供你在進程間分享sockets連接來使你系統的多核能夠負載均衡。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇明县| 泰宁县| 甘泉县| 翼城县| 怀化市| 沧州市| 南岸区| 朝阳区| 贵德县| 四平市| 溧水县| 张家口市| 湾仔区| 大田县| 义马市| 施甸县| 延川县| 宜宾县| 井研县| 兴安盟| 闵行区| 乌审旗| 方山县| 峨眉山市| 清新县| 句容市| 稻城县| 苏尼特右旗| 蒙城县| 东兰县| 忻州市| 许昌县| 同仁县| 新宁县| 应城市| 阜宁县| 于田县| 松江区| 汉寿县| 汉寿县| 鹤壁市|