javascript編程基礎(chǔ) JavaScript為什么是單線程的?
JavaScript為什么是單線程的?JavaScript(以下簡(jiǎn)稱JS)不能說(shuō)是單線程的,因?yàn)镴S只是一種語(yǔ)言,多線程是由運(yùn)行時(shí)環(huán)境提供的。例如,使用JS進(jìn)行后臺(tái)開發(fā)的nodejs可以安裝模塊來(lái)實(shí)現(xiàn)
JavaScript為什么是單線程的?
JavaScript(以下簡(jiǎn)稱JS)不能說(shuō)是單線程的,因?yàn)镴S只是一種語(yǔ)言,多線程是由運(yùn)行時(shí)環(huán)境提供的。
例如,使用JS進(jìn)行后臺(tái)開發(fā)的nodejs可以安裝模塊來(lái)實(shí)現(xiàn)多線程,支持HTML5 worker的瀏覽器也可以使用worker在瀏覽器中實(shí)現(xiàn)多線程。
因此,我們只能說(shuō)“舊瀏覽器的JS不支持多線程”,因?yàn)樗梢院?jiǎn)化編程而不考慮并發(fā)修改。
js是單線程還是多線程?
瀏覽器不是單線程的
雖然JS在瀏覽器中運(yùn)行并且是單線程的,但是每個(gè)窗口都有一個(gè)JS線程,但是瀏覽器不是單線程的。例如,WebKit或gecko引擎可能有以下線程:
javascript引擎線程
接口呈現(xiàn)線程
瀏覽器事件觸發(fā)器線程
HTTP請(qǐng)求線程