異步I/O
這里,我們來詳細(xì)解釋一下:
異步是什么意思
比如說你的爸,今天要叫你做些事情,比如說你要做飯、洗衣服還有掃地,以及燒開水等等一系列的事情。那么,就你一個人來說,你是不是得一件事一件事的挨個做完了之后,才能接著做下一件事。比如說,你是不是燒完開水,然后才來掃地,掃完地然后再來煮飯,煮完飯,你可能才會做其他事情。那么這個過程,我們把它叫做同步的過程。你做一件事,你必須要等待,等待做完了之后,再做另外一件事。那么這個時候,如果我們懂得合理安排時間的話,我們可以這樣辦:我們在燒開水的時候,我們可以掃地,因為燒開水不用我們守著嘛!只需要把水放好,或點燃就行了。然后,我們可以去做其他事情了。比如說,掃地,或者是洗衣服,等等一系列的事情我們都可以做。那么這樣,在做完了同樣的事情,但是我們所需要花費的時間,它是不一樣的。你用后面這種方式,可能用的時間會更短,效率更高。而你用前面那種同步的方式,它的效率會更低。那么,后面這種事情,我們就把它叫做異步的操作。
事件與回調(diào)
如果你采用異步的方式來做事情,它的效率會很高,但是你同時只能做一個事情。比如說,你燒開水的時候,雖然說不用你守在那里。但是你掃地了過后,你這個水燒開的時候,我怎么知道呢?(就是這件事做好了之后,我怎么知道呢?)
于是我們可以想一下,在這個水壺上面,給它放一個小喇叭,當(dāng)這個水燒開了之后會冒蒸汽,當(dāng)這個蒸汽吹響這個喇叭的時候,我們就知道這個事情做好了,水燒開了,我們就可以接著做水燒開之后的事情了。
這個事件與回調(diào)就是:這個水燒開了以后,它會以事件的形式來通知你(我這個事情做好了,你可以把這個水裝好了)。
回調(diào)是什么意思
當(dāng)它的事件發(fā)生了過后,它會通知你,那么你在裝水這個過程,就是在回調(diào)(就是處理這個過程)。處理完燒開水過后的結(jié)果
單線程
這一點是node.js比較大的一個特點。它可以開發(fā)出高效的后臺應(yīng)用(網(wǎng)絡(luò)應(yīng)用)
什么是單線程
還是用剛才那個例子。你爸叫你做很多件事情,如果你不懂的合理安排時間,你就只能用同步;那么同步的時候,你可能會這樣想:我叫我?guī)讉€小伙伴來幫我做這個事情(叫個兩三個小伙伴)。一個幫我燒開水,一個幫我掃地,一個幫我煮飯。這樣操作的話,在同一個時間段,就有多個人來幫你做事情。(這種操作,我們把它叫做多線程操作,就是同一時間段,有多個人來做事情)
多線程操作它有個缺點,就是你請這些小伙伴來幫你做事情,肯定要犒勞一下他們,那么你勢必會花費一下你的零用錢,你肯定要買點好吃的東西來犒勞一下。那么這樣,如果你不想花你的錢,但是你又想把事情做好,那么你怎么辦呢?只能按照剛才我們異步的方式,就是你一個人做。又要提高效率怎么辦呢?就是我做這件事情的時候,同時又要做其它事情,那么這個就是單線程(就是一個人做事情)。
跨平臺
目前我們的node.js在mac系統(tǒng)上、Windows上面和Linux這些上面,都可以運行,它已經(jīng)開發(fā)除了對應(yīng)的運行環(huán)境了。
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com