JS 運行機制

 

1、如何理解JS的單線程

  JS 在同一時間段只能作一件事異步

  JS 同步是單線程,異步能夠實現多進程ide

 

2、理解任務隊列

  js 是一門單線程語言,這就意味着全部任務都須要排隊,前一個任務結束,後一個任務纔會開始。因此就有了 同步任務 和 異步任務。oop

  同步任務指的是,在主線程上排隊執行的任務,前一個任務結束,纔會開始執行下一個任務;spa

  異步任務指的是,不進入主線程,而進入一個「任務隊列」,只有「任務隊列」通知主線程,某個異步任務能夠執行了,該任務纔會進入主線程執行,並且能夠執行多個任務,不會形成阻塞。線程

 

3、理解事件循環 Event Loop

 

  異步執行的運行機制以下:

  1.全部同步任務都在主線程上執行,造成一個執行棧(execution context stack)。blog

  2.主線程以外,還存在一個"任務隊列"(task queue)。只要異步任務有了運行結果,就在"任務隊列"之中放置一個事件。隊列

  3.一旦"執行棧"中的全部同步任務執行完畢,系統就會讀取"任務隊列",看看裏面有哪些事件。那些對應的異步任務,因而結束等待狀態,進入執行棧,開始執行。進程

  主線程不斷重複上面的第三步。事件

  主線程從"任務隊列"中讀取事件,這個過程是循環不斷的,因此整個的這種運行機制又稱爲Event Loop(事件循環)。只要主線程空了,就會去讀取"任務隊列",這就是JavaScript的運行機制。ip

  

  js 運行機制

 

 原文連接:https://baijiahao.baidu.com/s?id=1615713540466951098&wfr=spider&for=pc

相關文章
相關標籤/搜索