瀏覽器的中進(jìn)程與線程是什么-創(chuàng)新互聯(lián)

這篇文章主要介紹瀏覽器的中進(jìn)程與線程是什么,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),五指山企業(yè)網(wǎng)站建設(shè),五指山品牌網(wǎng)站建設(shè),網(wǎng)站定制,五指山網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,五指山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

進(jìn)程

進(jìn)程是cpu的資源分配的最小單位。

多進(jìn)程:多進(jìn)程指的是在同一個(gè)時(shí)間里,同一個(gè)計(jì)算機(jī)系統(tǒng)中如果允許兩個(gè)或兩個(gè)以上的進(jìn)程處于運(yùn)行狀態(tài)。多進(jìn)程帶來的好處是明顯的,比如你可以聽歌的同時(shí),打開編輯器敲代碼,編輯器和聽歌軟件的進(jìn)程之間絲毫不會(huì)相互干擾。

瀏覽器是多進(jìn)程的,瀏覽器的進(jìn)程主要包括以下幾種:

  1. Browser進(jìn)程:瀏覽器的主進(jìn)程(負(fù)責(zé)協(xié)調(diào),主控)

  2. 第三方插件進(jìn)程:每種類型的插件對(duì)應(yīng)一個(gè)進(jìn)程,僅當(dāng)使用該插件時(shí)才創(chuàng)建

  3. GPU進(jìn)程:最多一個(gè),用于3D繪制

  4. 瀏覽器渲染進(jìn)程(內(nèi)核):默認(rèn)每個(gè)Tab頁(yè)面一個(gè)進(jìn)程,互不影響,控制頁(yè)面渲染,腳本執(zhí)行,事件處理等(有時(shí)候會(huì)優(yōu)化,如多個(gè)空白tab會(huì)合并成一個(gè)進(jìn)程)

在瀏覽網(wǎng)頁(yè)時(shí),同時(shí)打開幾個(gè)新的頁(yè)面, 這就要打開幾個(gè)瀏覽窗口,但一旦開啟十幾個(gè)窗口,整個(gè)計(jì)算機(jī)就會(huì)越來越慢。

多進(jìn)程瀏覽器的優(yōu)點(diǎn)

避免頁(yè)面渲染影響整個(gè)瀏覽器

避免第三方插件影響整個(gè)瀏覽器

多進(jìn)程充分利用多核優(yōu)勢(shì)

方便使用沙盒模型隔離插件等進(jìn)程,提高瀏覽器穩(wěn)定性

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

線程

  • 一個(gè)進(jìn)程由一個(gè)或多個(gè)線程組成,線程是一個(gè)進(jìn)程中代碼的不同執(zhí)行路線;

  • 進(jìn)程之間相互獨(dú)立,但同一進(jìn)程下的各個(gè)線程之間共享程序的內(nèi)存空間(包括代碼段、數(shù)據(jù)集、堆等)及一些進(jìn)程級(jí)的資源(如打開文件和信號(hào))。

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

  1. GUI線程

  2. Javascript引擎線程

  3. 事件觸發(fā)線程

  4. 定時(shí)器線程

  5. 網(wǎng)絡(luò)請(qǐng)求線程

GUI線程

負(fù)責(zé)渲染瀏覽器界面HTML元素,當(dāng)界面需要重繪(Repaint)或由于某種操作引發(fā)回流(reflow)時(shí),該線程就會(huì)執(zhí)行。在Javascript引擎運(yùn)行腳本期間,GUI渲染線程都是處于掛起狀態(tài)的,也就是說被”凍結(jié)”了.

Javascript引擎線程

也可以稱為JS內(nèi)核,主要負(fù)責(zé)處理Javascript腳本程序,例如V8引擎。Javascript引擎線程理所當(dāng)然是負(fù)責(zé)解析Javascript腳本,運(yùn)行代碼。

Javascript是單線程的

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

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

由于JavaScript是可操縱DOM的,如果在修改這些元素屬性同時(shí)渲染界面(即JavaScript線程和UI線程同時(shí)運(yùn)行),那么渲染線程前后獲得的元素?cái)?shù)據(jù)就可能不一致了。因此為了防止渲染出現(xiàn)不可預(yù)期的結(jié)果,瀏覽器設(shè)置GUI渲染線程與JavaScript引擎為互斥的關(guān)系,當(dāng)JavaScript引擎執(zhí)行時(shí)GUI線程會(huì)被掛起,GUI更新會(huì)被保存在一個(gè)隊(duì)列中等到引擎線程空閑時(shí)立即被執(zhí)行。

JS阻塞頁(yè)面加載

由于GUI渲染線程與JavaScript執(zhí)行線程是互斥的關(guān)系,當(dāng)瀏覽器在執(zhí)行JavaScript程序的時(shí)候,GUI渲染線程會(huì)被保存在一個(gè)隊(duì)列中,直到JS程序執(zhí)行完成,才會(huì)接著執(zhí)行。因此如果JS執(zhí)行的時(shí)間過長(zhǎng),這樣就會(huì)造成頁(yè)面的渲染不連貫,導(dǎo)致頁(yè)面渲染加載阻塞的感覺。

定時(shí)觸發(fā)器線程

瀏覽器定時(shí)計(jì)數(shù)器并不是由JavaScript引擎計(jì)數(shù)的, 因?yàn)镴avaScript引擎是單線程的, 如果處于阻塞線程狀態(tài)就會(huì)影響記計(jì)時(shí)的準(zhǔn)確, 因此通過單獨(dú)線程來計(jì)時(shí)并觸發(fā)定時(shí)是更為合理的方案。

事件觸發(fā)線程

當(dāng)一個(gè)事件被觸發(fā)時(shí)該線程會(huì)把事件添加到待處理隊(duì)列的隊(duì)尾,等待JS引擎的處理。這些事件可以是當(dāng)前執(zhí)行的代碼塊如定時(shí)任務(wù)、也可來自瀏覽器內(nèi)核的其他線程如鼠標(biāo)點(diǎn)擊、AJAX異步請(qǐng)求等,但由于JS的單線程關(guān)系所有這些事件都得排隊(duì)等待JS引擎處理。

異步http請(qǐng)求線程

在XMLHttpRequest在連接后是通過瀏覽器新開一個(gè)線程請(qǐng)求, 將檢測(cè)到狀態(tài)變更時(shí),如果設(shè)置有回調(diào)函數(shù),異步線程就產(chǎn)生狀態(tài)變更事件放到 JavaScript引擎的處理隊(duì)列中等待處理。

以上是“瀏覽器的中進(jìn)程與線程是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章題目:瀏覽器的中進(jìn)程與線程是什么-創(chuàng)新互聯(lián)
文章路徑:http://m.kartarina.com/article6/dchoog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名關(guān)鍵詞優(yōu)化App開發(fā)全網(wǎng)營(yíng)銷推廣網(wǎng)頁(yè)設(shè)計(jì)公司域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)
主站蜘蛛池模板: 国产精品第一区揄拍无码| 人妻av无码一区二区三区| 亚洲熟妇无码av另类vr影视| 亚洲精品中文字幕无码A片老| 亚洲成a人片在线观看天堂无码| 无码人妻AV一二区二区三区| 无码中文人妻在线一区| 国产成人无码一区二区在线播放 | 麻豆国产精品无码视频| 韩国精品一区二区三区无码视频| 国产精品一级毛片无码视频| 精品无码成人片一区二区98| 97无码人妻福利免费公开在线视频| 国产AV无码专区亚洲A∨毛片| 蜜桃成人无码区免费视频网站 | 国产精品无码翘臀在线观看| 无码人妻精品一区二区三区99仓本 | 无码乱肉视频免费大全合集| 尤物永久免费AV无码网站| 久久久久成人精品无码中文字幕| 国产AV无码专区亚洲AV男同| 一本大道久久东京热无码AV| 亚洲日韩精品无码AV海量| 亚洲av无码精品网站| 中文字幕在线无码一区二区三区| 亚洲成av人片不卡无码| 久久久久久AV无码免费网站| 亚洲精品无码av人在线观看 | 曰产无码久久久久久精品 | 无码人妻熟妇AV又粗又大| 一本无码中文字幕在线观| YW尤物AV无码国产在线观看| 日韩乱码人妻无码中文字幕视频 | 精品亚洲A∨无码一区二区三区| 亚洲äv永久无码精品天堂久久 | 国产热の有码热の无码视频| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产真人无码作爱视频免费| AV无码小缝喷白浆在线观看| 自拍中文精品无码| 久久精品岛国av一区二区无码|