任務列隊和event loop(事件迴圈)

2021-10-10 04:10:30 字數 370 閱讀 9905

1.所有的同步任務都在主線程上執行,行成乙個執行棧。

2.除了主線程之外,還存在乙個任務列隊,只要非同步任務有了執行結果,就在任務列隊中植入乙個時間標記。

3.主線程完成所有任務(執行棧清空),就會讀取任務列隊,先執行微任務佇列在執行巨集任務佇列。

4.重複上面三步。

只要主線程空了,就會讀取任務列隊,這就是js的執行機制,也被稱為event loop(事件迴圈)。

1.主線程上巨集任務、微任務執行順序

執行順序:主線程 >> 主線程上建立的微任務 >> 主線程上建立的巨集任務

2.巨集任務中包含微任務

執行順序:主線程 >> 主線程上的巨集任務佇列1 >> 巨集任務佇列1中建立的微任務

微任務,巨集任務,事件迴圈(Event Loop)

最近遇到了事件迴圈的問題,於是決定好好的研究一番。看了一篇文章感覺講的特別好。我們都知道event loop的執行順序是 執行巨集任務 該巨集任務產生的微任務,若微任務執行中產生了新的微任務,則繼續執行微任務,微任務執行完畢,再回到巨集任務進行下一輪迴圈。後來自己也看了很多例子,但是疑惑點是,對於p...

Event Loop我知道,巨集任務微任務是什麼鬼?

在介紹巨集任務和微任務之前,先丟擲乙個問題。相信大家在面試的時候,會遇到這樣的相似的問題 settimeout function then function undefined console.log 3 console.log 4 請說出控制台列印的資料,很多小夥伴經過深思熟慮之後,會自信的說出答...

java棧和列隊

1 棧的構造和應用 棧的特點 先進後出,後進先出。package ch03 public class mystack 帶引數的構造方法,引數為陣列化初始化大小 public mystack int maxsize 新增資料 public void push int value 移除資料 public...