線程與進程
- 進程:
- 程序的一次執行, 它佔有一片獨有的內存空間
- 可以通過windows任務管理器查看進程
- 線程:
- 是進程內的一個獨立執行單元
- 是程序執行的一個完整流程
- 是CPU的最小的調度單元
- 關係
- 一個進程至少有一個線程(主)
- 一個進程中也可以同時運行多個線程, 我們會說程序是多線程運行的
- 一個進程內的數據可以供其中的多個線程直接共享
- 多個進程之間的數據是不能直接共享的
- 程序是在某個進程中的某個線程執行的
圖解
瀏覽器運行是單進程還是多進程?
有的是單進程
- firefox
- 老版IE
有的是多進程
- chrome
- 新版IE
如何查看瀏覽器是否是多進程運行的呢?
任務管理器==>進程
瀏覽器運行是單線程還是多線程?
都是多線程運行的
瀏覽器內核模塊組成
什麼是瀏覽器內核?
支持瀏覽器運行的最核心的程序
瀏覽器內核
Chrome, Safari: webkit
firefox: Gecko
IE: Trident
360,搜狗等國內瀏覽器: Trident + webkit
- 主線程
- js引擎模塊 : 負責js程序的編譯與運行
- html,css文檔解析模塊 : 負責頁面文本的解析
- DOM/CSS模塊 : 負責dom/css在內存中的相關處理
- 佈局和渲染模塊 : 負責頁面的佈局和效果的繪製(內存中的對象)
- 分線程
- 定時器模塊 : 負責定時器的管理
- DOM事件模塊 : 負責事件的管理
- 網絡請求模塊 : 負責Ajax請求