eventLoop機制

1.js為單線程

假設js有兩個線程,一個在某個dom添加內(nèi)容揽惹,另一個在這個dom刪除內(nèi)容被饿,瀏覽器應該以哪個線程為準?
這就意味著搪搏,單線程為js核心標準狭握,將一直沿用下去。

web worker : 號稱讓js成為一門多線程語言
所有新線程受主線程的控制疯溺,不能獨立執(zhí)行论颅。實際上屬于主線程的子線程。
子線程沒有執(zhí)行I/O操作的權限喝检,只能為主線程分擔計算等任務嗅辣,嚴格說,這些線程沒有完整功能挠说,并非改變了js的單線程本質(zhì)澡谭。

2.事件循環(huán)

一直在查找新的事件執(zhí)行,一次執(zhí)行的循環(huán)成為tick损俭,循環(huán)里執(zhí)行的代碼稱為task

任務分同步和異步
js執(zhí)行時將不同變量存在內(nèi)存的不同位置:堆(heap)和棧(stack)中區(qū)分蛙奖。
堆中一般存變量,stack一般存函數(shù)和方法杆兵。
stack叫做執(zhí)行棧雁仲,方法會依次在這里執(zhí)行。
執(zhí)行棧事件先進先出琐脏,任務隊列先進先出攒砖。
web apis代表異步事件,callback queue事件隊列

執(zhí)行棧執(zhí)行主線程任務日裙,當有<font color=#ff0000>操作dom吹艇,ajax交互,定時器</font> 等異步操作時候昂拂,任務會移入到callback queue任務隊列
當主線程執(zhí)行完畢后受神,讀取callbakc quene隊列中的函數(shù),進入主線程執(zhí)行格侯。
不斷重復鼻听,就是常說的<font color=#ff0000>事件循環(huán)(eventloop)</font>

3.macro task和 micro task

不同的異步任務會分為兩類:微任務(micro)和宏任務(macro)

在一個事件循環(huán)中财著,異步事件返回結(jié)果后被放到對應的宏任務隊列或者微任務隊列中去。

<font color=#ff0000>宏任務->這個宏任務中的微任務->下一個宏任務->下一個宏任務添加的微任務</font>

當執(zhí)行棧為空時撑碴,主線程會首先查看微任務中的事件撑教,如果微任務不是空執(zhí)行微任務。如果沒有任務灰羽,在宏任務中取出最前面的一個事件驮履,把對應的回調(diào)加入當前執(zhí)行棧......... 如此反復鱼辙,進入循環(huán)

macro-task(宏任務)
整體代碼
settimeout
setinterval
setlmmediate

主代碼塊 > setImmediate > MessageChannel > setTimeout / setInterval

micro-task(微任務)

process.nextTick > Promise > MutationObserver

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末廉嚼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子倒戏,更是在濱河造成了極大的恐慌怠噪,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件杜跷,死亡現(xiàn)場離奇詭異傍念,居然都是意外死亡,警方通過查閱死者的電腦和手機葛闷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門憋槐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淑趾,你說我怎么就攤上這事阳仔。” “怎么了扣泊?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵近范,是天一觀的道長。 經(jīng)常有香客問我延蟹,道長评矩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任阱飘,我火速辦了婚禮斥杜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沥匈。我一直安慰自己蔗喂,他們只是感情好,可當我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布咐熙。 她就那樣靜靜地躺著弱恒,像睡著了一般。 火紅的嫁衣襯著肌膚如雪棋恼。 梳的紋絲不亂的頭發(fā)上返弹,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天锈玉,我揣著相機與錄音,去河邊找鬼义起。 笑死拉背,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的默终。 我是一名探鬼主播椅棺,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼齐蔽!你這毒婦竟也來了两疚?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤含滴,失蹤者是張志新(化名)和其女友劉穎诱渤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谈况,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡勺美,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碑韵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赡茸。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖祝闻,靈堂內(nèi)的尸體忽然破棺而出占卧,到底是詐尸還是另有隱情,我是刑警寧澤治筒,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布屉栓,位于F島的核電站,受9級特大地震影響耸袜,放射性物質(zhì)發(fā)生泄漏友多。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一堤框、第九天 我趴在偏房一處隱蔽的房頂上張望域滥。 院中可真熱鬧,春花似錦蜈抓、人聲如沸启绰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽委可。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間着倾,已是汗流浹背拾酝。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留卡者,地道東北人蒿囤。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像崇决,于是被迫代替她去往敵國和親材诽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容