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

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

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

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

原文地址: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連接來使你系統的多核能夠負載均衡。


上一篇:NYOJ 114 某種序列

下一篇:矩陣鍵盤時鐘

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 客服| 新龙县| 景德镇市| 天祝| 池州市| 西平县| 连平县| 宿松县| 都安| 泗水县| 山丹县| 鄂尔多斯市| 朔州市| 通州市| 龙泉市| 宝应县| 崇义县| 黑河市| 绥芬河市| 宿迁市| 于都县| 威宁| 永胜县| 济阳县| 余庆县| 辽源市| 岳阳市| 屏东市| 新野县| 苍梧县| 岳普湖县| 蚌埠市| 泾川县| 瓮安县| 百色市| 仙游县| 新津县| 秦皇岛市| 武陟县| 洛扎县| 临高县|