js單線程,同一時間只能做一件事 。js的單線程 主要與它的用途有關。作為瀏覽器腳本語言,js的主要用途是與用戶互動,以及操作DOM。這決定了它只能是單線程,否則會帶來很復雜的同步問題。如果js同時有兩個線程,一個線程在某個DOM節點上添加內容,另一個線程刪除這個節點,瀏覽器不知道以哪個為準。為了避免復雜性,一誕生,js就是單線程,是這門語言的核心特征。
為了利用多核CPU的計算能力,html5提出WebWorker標準,允許js腳本創建多個線程,但是子線程完全受主線程控制,且不得操作DOM,所以這個標準并沒有改變js單線程的本質。