nodejs 阻塞术羔,非阻塞

我發(fā)現(xiàn)有些很基礎的東西,看了就忘了乙漓,有必要記錄一下级历,以防以后忘了再回來看看。
讀取一個文件叭披,然后打印出來

阻塞方式

var fs = require("fs");

var data = fs.readFileSync('input.txt');

console.log(data.toString());
console.log("程序執(zhí)行結束!");

輸出

菜鳥教程官網地址:www.runoob.com
程序執(zhí)行結束!

阻塞的方式就是我(readFileSync)今天不讀完這個文件寥殖,你們誰都TM的不準動,所以如果這個文件讀了5分鐘涩蜘,沒辦法后面的代碼也得老老實實等著嚼贡,那這樣肯定是不行的,這個耗時的代碼可以放一邊執(zhí)行同诫,不要影響后面的代碼粤策。

非阻塞方式

var fs = require("fs");

fs.readFile('input.txt', function (err, data) {
    if (err) return console.error(err);
    console.log(data.toString());
});

console.log("程序執(zhí)行結束!");

輸出

程序執(zhí)行結束!
菜鳥教程官網地址:www.runoob.com

這個就是我(console.log)先執(zhí)行了,你(readFile)那么耗時間還不用CPU不是浪費嗎误窖?你就后面在運行把叮盘。

一個形象的比喻

阻塞和非阻塞秩贰,同步和異步是node.js里經常遇到的詞匯,我舉個簡單的例子來說明:

我要看足球比賽柔吼,但是媽媽叫我燒水毒费,電視機在客廳,燒水要在廚房愈魏。家里有2個水壺觅玻,一個是普通的水壺,另一個是水開了會叫的那種水壺培漏。我可以:

  • 用普通的水壺燒溪厘,人在邊上看著,水開了再去看球牌柄。(同步桩匪,阻塞)這個是常規(guī)做法,但是我看球不爽了友鼻。
  • 用普通水壺燒,人去看球闺骚,隔幾分鐘去廚房看看彩扔。(同步,非阻塞)這個又大問題僻爽,萬一在我離開的幾分鐘水開了虫碉,我就麻煩了。
  • 用會叫的水壺胸梆,人在邊上看著敦捧。(異步,阻塞)這個沒有問題碰镜,但是我太傻了兢卵。
  • 用會叫的水壺,人去看球绪颖,聽見水壺叫了再去看秽荤。(異步,非阻塞)這個應該是最好的柠横。
  • 等著看球的我:阻塞

  • 看著電視的我:非阻塞

  • 普通水壺:同步

  • 會叫的水壺:異步

所以窃款,異步往往配合非阻塞,才能發(fā)揮出威力牍氛。

參考
Node.js 回調函數(shù)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末晨继,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子搬俊,更是在濱河造成了極大的恐慌紊扬,老刑警劉巖蜒茄,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異珠月,居然都是意外死亡扩淀,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門啤挎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來驻谆,“玉大人,你說我怎么就攤上這事庆聘∈る” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵伙判,是天一觀的道長象对。 經常有香客問我,道長宴抚,這世上最難降的妖魔是什么勒魔? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮菇曲,結果婚禮上冠绢,老公的妹妹穿的比我還像新娘。我一直安慰自己常潮,他們只是感情好弟胀,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喊式,像睡著了一般孵户。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上岔留,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天夏哭,我揣著相機與錄音,去河邊找鬼贸诚。 笑死方庭,一個胖子當著我的面吹牛,可吹牛的內容都是我干的酱固。 我是一名探鬼主播械念,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼运悲!你這毒婦竟也來了龄减?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤班眯,失蹤者是張志新(化名)和其女友劉穎希停,沒想到半個月后烁巫,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡宠能,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年亚隙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片违崇。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡阿弃,死狀恐怖,靈堂內的尸體忽然破棺而出羞延,到底是詐尸還是另有隱情渣淳,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布伴箩,位于F島的核電站入愧,受9級特大地震影響,放射性物質發(fā)生泄漏嗤谚。R本人自食惡果不足惜棺蛛,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望巩步。 院中可真熱鬧鞠值,春花似錦、人聲如沸渗钉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳄橘。三九已至,卻和暖如春芒炼,著一層夾襖步出監(jiān)牢的瞬間瘫怜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工本刽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鲸湃,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓子寓,卻偏偏與公主長得像暗挑,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子斜友,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內容