javascript是單進(jìn)程。作為瀏覽器腳本語言,JavaScript的主要用途是與用戶互動,以及操作DOM,這決定了它只能是單線程的,否則會帶來很多復(fù)雜的同步問題。
本文操作環(huán)境:windows10系統(tǒng)、javascript 1.8.5、thinkpad t480電腦。
JavaScript是單線程,這是它的一大特點(diǎn)。也就是說,JavaScript在同一時間只能做一件事。
作為瀏覽器腳本語言,JavaScript的主要用途是與用戶互動,以及操作DOM,這決定了它只能是單線程,否則會帶來很復(fù)雜的同步問題。比如,假定JavaScript同時有兩個線程,一個線程在某個DOM節(jié)點(diǎn)上添加內(nèi)容,另一個線程刪除了這個節(jié)點(diǎn),這時瀏覽器應(yīng)該以哪個線程為準(zhǔn)?
為了利用多核CPU的計算能力,HTML5提出Web Worker標(biāo)準(zhǔn),允許JavaScript腳本創(chuàng)建多個線程,但是子線程完全受主線程控制,且不得操作DOM。所以,這個新標(biāo)準(zhǔn)并沒有改變JavaScript單線程的本質(zhì)。
推薦學(xué)習(xí):javascript視頻教程