JavaScript語言不支持多線程,因?yàn)闉g覽器中的JavaScript解釋器是單線程。JavaScript最初被設(shè)計(jì)用在瀏覽器中,它的主要用途是與用戶互動(dòng),以及操作DOM,這決定了它只能是單線程,否則會帶來很復(fù)雜的同步問題。
本教程操作環(huán)境:windows7系統(tǒng)、ECMAScript 5版、Dell G3電腦。
JavaScript語言不支持多線程,因?yàn)闉g覽器中的JavaScript解釋器是單線程。
JavaScript的單線程,與它的用途有關(guān)。JavaScript最初被設(shè)計(jì)用在瀏覽器中,作為瀏覽器腳本語言,JavaScript的主要用途是與用戶互動(dòng),以及操作DOM,這決定了它只能是單線程,否則會帶來很復(fù)雜的同步問題。
比如,假定JavaScript同時(shí)有兩個(gè)線程,一個(gè)線程在某個(gè)DOM節(jié)點(diǎn)上添加內(nèi)容,另一個(gè)線程刪除了這個(gè)節(jié)點(diǎn),這時(shí)瀏覽器應(yīng)該以哪個(gè)線程為準(zhǔn)?
所以為了避免復(fù)雜性,JavaScript從誕生起就是單線程,這已經(jīng)成了這門語言的核心特征,將來也不會改變。
為了利用多核CPU的計(jì)算能力,HTML5提出Web Worker標(biāo)準(zhǔn),允許JavaScript腳本創(chuàng)建多個(gè)線程,但是子線程完
全受主線程控制,且不得操作DOM。所以,這個(gè)新標(biāo)準(zhǔn)并沒有改變JavaScript單線程的本質(zhì)。
推薦學(xué)習(xí):js基礎(chǔ)教程