摘要:非阻塞下面我們繼續(xù)看看的第個特性非阻塞異步首先,看看什么是非阻塞呢操作,在程序中我們可以廣泛的認為是從數(shù)據(jù)庫讀數(shù)據(jù)從硬盤上讀寫文件等。當處理完畢后,是怎樣知道該完成了這里就要說到第個特性了事件驅(qū)動。
非阻塞I/O
下面我們繼續(xù)看看,nodejs的第2個特性--非阻塞I/O(異步I/O)
首先,看看什么是非阻塞I/O呢?I/O操作,在程序中我們可以廣泛的認為是:從數(shù)據(jù)庫讀數(shù)據(jù)、從硬盤上讀寫文件等。
在傳統(tǒng)的單線程阻塞I/O中(如下圖),
在程序運行到I/O操作時(從數(shù)據(jù)庫讀取數(shù)據(jù)),由于數(shù)據(jù)庫返回數(shù)據(jù)需要一定時間,程序在這個時候會暫停下來,等到數(shù)據(jù)庫成功返回數(shù)據(jù)后,才能繼續(xù)執(zhí)行程序2后面的代碼;也就是說I/O阻塞了代碼的運行,極大地降低了程序的執(zhí)行效率。
而nodejs采用了非阻塞I/O機制,在程序運行到I/O操作后,程序會立刻跳到程序2去執(zhí)行,把數(shù)據(jù)庫返回的數(shù)據(jù)處理程序放到回調(diào)函數(shù)中,從而提高程序的執(zhí)行效率。
阻塞模式下,一個線程只能處理一個任務(wù),要提高服務(wù)器的吞吐量必須要用到多線程;而非阻塞下,線程永遠都在工作(事件棧中有事件的話),換句話說:這個線程的cpu利用率為100%。
當I/O處理完畢后,nodejs是怎樣知道該I/O完成了?這里就要說到第3個特性了--事件驅(qū)動。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/93138.html
摘要:事件驅(qū)動在中,當某個執(zhí)行完畢后,會以事件的形式通知執(zhí)行操作的線程而線程去執(zhí)行對應(yīng)事件的回調(diào)函數(shù)。為了處理異步,線程必須要有事件循環(huán),不斷的檢查有沒有事件要處理,并依次處理。其實在底層中,有一半的代碼,都是在處理事件隊列回調(diào)函數(shù)。 事件驅(qū)動 上一節(jié)中,我們提到異步I/O;當I/O處理完畢后,nodejs是怎樣知道I/O已經(jīng)完成了呢?又是怎樣去處理的呢?答案是:事件驅(qū)動(事件循環(huán))機制。 ...
摘要:是什么官網(wǎng)上的定義翻譯過來是一個基于引擎的運行環(huán)境。使用了一個事件驅(qū)動非阻塞式的模型,使其輕量又高效。的包管理器,是全球最大的開源庫生態(tài)系統(tǒng)。的特點非常重要單線程事件驅(qū)動事件循環(huán)非阻塞異步所謂的特點,就是是怎樣解決服務(wù)器高性能的問題。 nodejs是什么 nodejs官網(wǎng)(nodejs.org)上的定義:Node.js? is a JavaScript runtime built on...
摘要:特性單線程說明也許你會問,為什么還不安裝還不寫代碼還不講模塊前面我說過,不會一來就。另外,單線程中,操作系統(tǒng)沒有創(chuàng)建銷毀線程的時間開銷。單線程缺點如果有用戶造成線程崩潰,那個整個系統(tǒng)都崩潰了。 nodejs特性1--單線程 說明:也許你會問,為什么還不安裝nodejs?還不寫代碼?還不講模塊?前面我說過,不會一來就hello world。而是會先跟大家講講nodejs的特點,只有大家明...
摘要:異步和事件驅(qū)動注本文是對眾多博客的學習和總結(jié),可能存在理解錯誤。接觸有兩個月,對的兩大特性一直有點模糊,即異步和事件驅(qū)動。 nodejs 異步I/O和事件驅(qū)動 注:本文是對眾多博客的學習和總結(jié),可能存在理解錯誤。請帶著懷疑的眼光,同時如果有錯誤希望能指出。 接觸nodejs有兩個月,對nodejs的兩大特性一直有點模糊,即異步IO和事件驅(qū)動。通過對《深入淺出nodejs》和幾篇博客的閱...
摘要:適合做什么我們學習完一門新的技術(shù),我們要知道它適用于什么場景??梢哉f是,極客追求極致性能的產(chǎn)物,缺少服務(wù)器健壯性的考慮。不建議使用在追求穩(wěn)定的業(yè)務(wù)上,如銀行證券電信系統(tǒng)等。還有非常適合更配合,開發(fā)長連接的實時業(yè)務(wù)。 nodejs適合做什么 我們學習完一門新的技術(shù),我們要知道它適用于什么場景。 nodejs可以說是,極客追求極致性能的產(chǎn)物,缺少服務(wù)器健壯性的考慮。不建議使用在追求穩(wěn)定的業(yè)...
閱讀 736·2021-11-25 09:43
閱讀 1720·2021-11-18 10:02
閱讀 1103·2021-10-15 09:39
閱讀 1953·2021-10-12 10:18
閱讀 2192·2021-09-22 15:43
閱讀 826·2021-09-22 15:10
閱讀 2158·2019-08-30 15:53
閱讀 1070·2019-08-30 13:00