為什麼 JavaScript 不支援多執行緒?


JavaScript 以前是單執行緒的。它使用所謂的事件迴圈執行。

事件迴圈有一個簡單的工作——監視呼叫堆疊和回撥佇列。如果呼叫堆疊為空,它將從佇列中選取第一個事件,並將其推送到呼叫堆疊中,以便有效地執行它。

瀏覽器中的 JS 在事件迴圈中不支援多執行緒,因為 99.999% 的網站不需要這樣做。事件迴圈無縫地處理所有事情。

對於剩餘的應用程式,開發者可以使用 Web 工作器。Web 工作器是 Web 內容在後臺執行緒中執行指令碼的一種簡單方法。工作器執行緒可以在不干擾使用者介面的情況下執行任務。此外,它們可以使用 XMLHttpRequest 執行 I/O(儘管 responseXML 和 channel 屬性始終為 null)。建立後,工作器可以透過釋出訊息到由該程式碼指定的事件處理程式,將訊息傳送到建立它的 JavaScript 程式碼(反之亦然)。本文詳細介紹了使用 Web 工作器的相關內容。

更新於: 2019 年 12 月 2 日

465 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.