回調(diào)就是將后續(xù)邏輯封裝成起始函數(shù)的參數(shù),逐層嵌套得函數(shù)。
同步:發(fā)送數(shù)據(jù)后,等待回響應(yīng)后,才發(fā)下一個(gè)數(shù)據(jù)包的通訊方式
異步:發(fā)送數(shù)據(jù)后,不等響應(yīng),接著發(fā)送下個(gè)數(shù)據(jù)包的通訊方式
文件系統(tǒng)里面 :
磁盤的寫入(in) 磁盤的讀?。╫ut)
一次只能執(zhí)行一個(gè)程序叫做單線程
一次能執(zhí)行多個(gè)程序叫做多線程
阻塞:前一個(gè)程序未執(zhí)行完,就得一直等待
非阻塞:前一個(gè)程序未執(zhí)行完時(shí)可以掛起,繼續(xù)執(zhí)行其他程序,等到使用時(shí)再執(zhí)行
一個(gè)觸發(fā)動(dòng)作(例如點(diǎn)擊按鈕)
一個(gè)觸發(fā)動(dòng)作引起的操作(例如點(diǎn)擊按鈕后彈出一個(gè)對(duì)話框)
為了某個(gè)事件注冊(cè)了回調(diào)函數(shù),但是這個(gè)回調(diào)函數(shù)不是馬上執(zhí)行,
只有當(dāng)事件發(fā)生的時(shí)候,才會(huì)調(diào)用回調(diào)用函數(shù),這種函數(shù)執(zhí)行的方式叫做事件驅(qū)動(dòng)。
這種注冊(cè)回調(diào)就是基于事件驅(qū)動(dòng)的回調(diào)。
如果這些回調(diào)和異步I/O(數(shù)據(jù)寫入、讀?。┎僮飨嚓P(guān),可以看作是基于回調(diào)的異步I/O。
只不過(guò)這種回調(diào)在nodejs中是由事件來(lái)驅(qū)動(dòng)的
事件循環(huán)Eventloop,倘若有大量的異步操作,如一些I/O的耗時(shí)操作,甚至是一些定時(shí)器控制的延時(shí)操作,
它們完成的時(shí)候都要調(diào)用相應(yīng)的回調(diào)函數(shù),而從完成一些密集的任務(wù),而又不會(huì)阻塞整個(gè)程序執(zhí)行的流程,此時(shí)需要一種機(jī)制來(lái)管理,這種機(jī)制叫做事件循環(huán)
總而言之,管理大量異步操作的機(jī)制叫做事件循環(huán)。
聲明:本網(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