国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

瀏覽器的進程與線程的介紹

來源:懂視網 責編:小采 時間:2020-11-27 19:29:01
文檔

瀏覽器的進程與線程的介紹

瀏覽器的進程與線程的介紹:本篇文章給大家帶來的內容是關于瀏覽器的進程與線程的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。進程進程是cpu的資源分配的最小單位。多進程:多進程指的是在同一個時間里,同一個計算機系統中如果允許兩個或兩個以上的進程處于
推薦度:
導讀瀏覽器的進程與線程的介紹:本篇文章給大家帶來的內容是關于瀏覽器的進程與線程的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。進程進程是cpu的資源分配的最小單位。多進程:多進程指的是在同一個時間里,同一個計算機系統中如果允許兩個或兩個以上的進程處于

本篇文章給大家帶來的內容是關于瀏覽器的進程與線程的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

進程

進程是cpu的資源分配的最小單位。

多進程:多進程指的是在同一個時間里,同一個計算機系統中如果允許兩個或兩個以上的進程處于運行狀態。多進程帶來的好處是明顯的,比如你可以聽歌的同時,打開編輯器敲代碼,編輯器和聽歌軟件的進程之間絲毫不會相互干擾。

瀏覽器是多進程的,瀏覽器的進程主要包括以下幾種:

  1. Browser進程:瀏覽器的主進程(負責協調,主控)

  2. 第三方插件進程:每種類型的插件對應一個進程,僅當使用該插件時才創建

  3. GPU進程:最多一個,用于3D繪制

  4. 瀏覽器渲染進程(內核):默認每個Tab頁面一個進程,互不影響,控制頁面渲染,腳本執行,事件處理等(有時候會優化,如多個空白tab會合并成一個進程)

在瀏覽網頁時,同時打開幾個新的頁面, 這就要打開幾個瀏覽窗口,但一旦開啟十幾個窗口,整個計算機就會越來越慢。

多進程瀏覽器的優點

避免頁面渲染影響整個瀏覽器

避免第三方插件影響整個瀏覽器

多進程充分利用多核優勢

方便使用沙盒模型隔離插件等進程,提高瀏覽器穩定性

通俗的講,就是用戶打開多個窗口,如果其中一個窗口崩掉了,也不會影響整個瀏覽器,其他的界面照樣正常運行

線程

  • 一個進程由一個或多個線程組成,線程是一個進程中代碼的不同執行路線;

  • 進程之間相互獨立,但同一進程下的各個線程之間共享程序的內存空間(包括代碼段、數據集、堆等)及一些進程級的資源(如打開文件和信號)。

  • 瀏覽器的渲染進程(瀏覽器內核),是多線程的,主要以下幾大類:

    1. GUI線程

    2. Javascript引擎線程

    3. 事件觸發線程

    4. 定時器線程

    5. 網絡請求線程

    GUI線程

    負責渲染瀏覽器界面HTML元素,當界面需要重繪(Repaint)或由于某種操作引發回流(reflow)時,該線程就會執行。在Javascript引擎運行腳本期間,GUI渲染線程都是處于掛起狀態的,也就是說被”凍結”了.

    Javascript引擎線程

    也可以稱為JS內核,主要負責處理Javascript腳本程序,例如V8引擎。Javascript引擎線程理所當然是負責解析Javascript腳本,運行代碼。

    Javascript是單線程的

    這是因為Javascript這門腳本語言誕生的使命所致:JavaScript為處理頁面中用戶的交互,以及操作DOM樹、CSS樣式樹來給用戶呈現一份動態而豐富的交互體驗和服務器邏輯的交互處理。如果JavaScript是多線程的方式來操作這些UI DOM,則可能出現UI操作的沖突; 如果Javascript是多線程的話,在多線程的交互下,處于UI中的DOM節點就可能成為一個臨界資源,假設存在兩個線程同時操作一個DOM,一個負責修改一個負責刪除,那么這個時候就需要瀏覽器來裁決如何生效哪個線程的執行結果。當然我們可以通過鎖來解決上面的問題。但為了避免因為引入了鎖而帶來更大的復雜性,Javascript在最初就選擇了單線程執行。

    GUI 渲染線程 與 JavaScript引擎線程互斥!

    由于JavaScript是可操縱DOM的,如果在修改這些元素屬性同時渲染界面(即JavaScript線程和UI線程同時運行),那么渲染線程前后獲得的元素數據就可能不一致了。因此為了防止渲染出現不可預期的結果,瀏覽器設置GUI渲染線程與JavaScript引擎為互斥的關系,當JavaScript引擎執行時GUI線程會被掛起,GUI更新會被保存在一個隊列中等到引擎線程空閑時立即被執行。

    JS阻塞頁面加載

    由于GUI渲染線程與JavaScript執行線程是互斥的關系,當瀏覽器在執行JavaScript程序的時候,GUI渲染線程會被保存在一個隊列中,直到JS程序執行完成,才會接著執行。因此如果JS執行的時間過長,這樣就會造成頁面的渲染不連貫,導致頁面渲染加載阻塞的感覺。

    定時觸發器線程

    瀏覽器定時計數器并不是由JavaScript引擎計數的, 因為JavaScript引擎是單線程的, 如果處于阻塞線程狀態就會影響記計時的準確, 因此通過單獨線程來計時并觸發定時是更為合理的方案。

    事件觸發線程

    當一個事件被觸發時該線程會把事件添加到待處理隊列的隊尾,等待JS引擎的處理。這些事件可以是當前執行的代碼塊如定時任務、也可來自瀏覽器內核的其他線程如鼠標點擊、AJAX異步請求等,但由于JS的單線程關系所有這些事件都得排隊等待JS引擎處理。

    異步http請求線程

    在XMLHttpRequest在連接后是通過瀏覽器新開一個線程請求, 將檢測到狀態變更時,如果設置有回調函數,異步線程就產生狀態變更事件放到 JavaScript引擎的處理隊列中等待處理。

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    瀏覽器的進程與線程的介紹

    瀏覽器的進程與線程的介紹:本篇文章給大家帶來的內容是關于瀏覽器的進程與線程的介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。進程進程是cpu的資源分配的最小單位。多進程:多進程指的是在同一個時間里,同一個計算機系統中如果允許兩個或兩個以上的進程處于
    推薦度:
    標簽: 瀏覽器 介紹 瀏覽
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产精品久久久久9999 | 久久久久久久久久久9精品视频 | 91中文 | 四虎精品永久在线 | 国产高清不卡码一区二区三区 | 日韩午夜免费电影 | 中文字幕在线不卡 | 一级一级一级毛片免费毛片 | 久久国产精品高清一区二区三区 | 欧美日韩亚洲另类 | 国产日韩欧美视频在线 | 阿v精品一区二区三区 | 免费国产线观看免费观看 | 能看毛片的网站 | 韩国精品欧美一区二区三区 | 国产精品电影一区二区三区 | 欧美另类网站 | 免费一看一级毛片人 | 免费一级a毛片在线播放直播 | 国产成人高清一区二区私人 | 亚洲欧美日韩高清中文在线 | 女人18毛片a级毛片一区②区 | 亚洲一区二区精品 | 真实和子乱视频 | 亚洲色图欧美自拍 | 91视频国产91久久久 | 国产欧美另类第一页 | 成人精品视频一区二区在线 | 三级中文字幕电影大全 | 国产欧美日韩精品综合 | 91精品国产色综合久久不卡蜜 | 久久精品国产精品亚洲综合 | 福利片一区二区 | 91在线一区二区三区 | 久久大陆 | 精品国产三级a在线观看 | 免费看真人a一级毛片 | 国产在线精品观看一区 | 欧美三级在线 | 91精品一区二区 | 精品一区二区三区亚洲 |