事件驅(qū)動模型
現(xiàn)在我們來看看nodejs中的事件驅(qū)動和異步I/O是如何實現(xiàn)的.
nodejs是單線程(single thread)運行的,通過一個事件循環(huán)(event-loop)來循環(huán)取出消息隊列(event-queue)中的消息進行處理,處理過程基本上就是去調(diào)用該消息對應的回調(diào)函數(shù)。消息隊列就是當一個事件狀態(tài)發(fā)生變化時,就將一個消息壓入隊列中。
nodejs的時間驅(qū)動模型一般要注意下面幾個點:
下面我們從一個簡單的js文件入手,來看看 nodejs是如何執(zhí)行的。
var fs = require("fs");var debug = require('debug')('example1');debug("begin");fs.readFile('package.json','utf-8',function(err,data){ if(err) debug(err); else debug("get file content");});setTimeout(function(){ debug("timeout2");}); debug('end'); // 運行到這里之前,事件循環(huán)是暫停的以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答
圖片精選