進程就是一個公司,每一個公司都有本身的資源能夠調度;公司之間是相互獨立的;而線程就是公司中的每一個員工(你,我,他),多個員工一塊兒合做,完成任務,公司能夠有一名員工或多個,員工之間共享公司的空間瀏覽器
進程:是cpu分配資源的最小單位;(是能擁有資源和獨立運行的最小單位)多線程
線程:是cpu調度的最小單位;(線程是創建在進程的基礎上的一次程序運行單位,一個進程中能夠有多個線程)dom
放在瀏覽器中,每打開一個tab頁面,其實就是新開了一個進程,在這個進程中,還有ui渲染線程,js引擎線程,http請求線程等。 因此,瀏覽器是一個多進程的。ui
這主要和js的用途有關,js是做爲瀏覽器的腳本語言,主要是實現用戶與瀏覽器的交互,以及操做dom;這決定了它只能是單線程,不然會帶來很複雜的同步問題。 舉個例子:若是js被設計了多線程,若是有一個線程要修改一個dom元素,另外一個線程要刪除這個dom元素,此時瀏覽器就會一臉茫然,不知所措。因此,爲了不復雜性,從一誕生,JavaScript就是單線程,這已經成了這門語言的核心特徵,未來也不會改變線程