JS線程與進程

線程與進程

  • 進程:
    • 程序的一次執行, 它佔有一片獨有的內存空間
    • 可以通過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請求
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章