JavaScript中沒有多執行緒;JavaScript是只能在一個執行緒中順序執行的,因此瀏覽器中的JavaScript解釋器是單執行緒的,並且不支援多執行緒;JavaScript即使有多個內核,也只能使它在稱為主執行緒的單一執行緒上執行任務,主要用途是與使用者互動以及操作DOM,如果不是單執行緒的話會帶來複雜的同步問題。
本教學操作環境:windows10系統、javascript1.8.5版、Dell G3電腦。
javascript沒有多線程,JavaScript是單線程的。
作為瀏覽器腳本語言,JavaScript的主要用途是與使用者互動,以及操作DOM。這決定了它只能是單線程,否則會帶來複雜的同步問題。
一個執行緒基本上是一個單一的過程中,一個程式可以使用它來完成任務。每個執行緒一次只能執行一個任務:
Task A --> Task B --> Task C
每個任務將依序運行;必須先完成一項任務,然後才能開始下一項任務。
如前所述,許多電腦現在具有多個內核,因此可以一次執行多個操作。可以支援多個執行緒的程式語言可以使用多個核心來同時完成多個任務:
Thread 1: Task A --> Task B Thread 2: Task C --> Task D
傳統上,JavaScript是單執行緒的。即使具有多個內核,也只能使它在稱為主線程的單一線程上運行任務。我們上面的範例是這樣運行的:
Main thread: Render circles to canvas --> Display alert()
js有多線程嗎,毫無疑問js本身只能單執行緒運行,因此並不支援多執行緒,下面我們就來分析一下:
首先在瀏覽器中至少會有三個執行緒:js引擎執行緒(處理js)、gui渲染執行緒(頁面渲染)、瀏覽器時間觸發執行緒(控制互動)
因為js可以操作dom元素,進而影響到gui的渲染結果,因此js引擎執行緒與gui渲染執行緒是互斥的,也就是說當js引擎執行緒處於工作狀態時,gui渲染執行緒是凍結的。
js引擎是基於事件驅動的,採用的是單執行緒運行機制,也就是js引擎只會順序的從任務清單中取任務並執行。
【相關推薦:javascript影片教學、web前端】
以上是javascript有多線程嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!