第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

js異步梳理:1.從瀏覽器的多進(jìn)程到JS的單線程,理解JS運(yùn)行機(jī)制

標(biāo)簽:
JavaScript

大家很早就知道JS是一门单线程的语言。但是也时不时的会看到进程这个词。首先简单区分下线程和进程的概念

1. 简单理解进程

- 进程是一个工厂,工厂有它的独立资源- 工厂之间相互独立- 线程是工厂中的工人,多个工人协作完成任务- 工厂内有一个或多个工人- 工人之间共享空间

2. 简单理解线程

- 工厂的资源 -> 系统分配的内存(独立的一块内存)- 工厂之间的相互独立 -> 进程之间相互独立- 多个工人协作完成任务 -> 多个线程在进程中协作完成任务- 工厂内有一个或多个工人 -> 一个进程由一个或多个线程组成- 工人之间共享空间 -> 同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)

3. 浏览器是多进程的

上面的1.1和1.2可能还是有些抽象。接下来用与前端息息相关的浏览器为例展开。

当你打开浏览器开了好几个网页的时候,打开浏览器的任务管理器(比如谷歌浏览器-> 更多工具 -> 任务管理器)
这里就是查看进程的地方,而且可以看到每个进程的cpu占用率和内存资源信息。

简单用比较官方的术语总结下:

  • 进程是cpu资源分配的最小单位(是能拥有资源和独立运行的最小单位)

  • 线程是cpu调度的最小单位(线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程)

  • 不同进程之间也可以通信。(比如网页是一个进程,qq是一个进程,在网页上使用快捷方式qq登录。网页怎么会知道你当前有没有登录qq的?这之间就涉及到了不同进程之间的通信)

  • 一般讨论的单线程和多线程,都只是指在一个进程内的单和多。

4 浏览器是如何渲染进程的?与JS的单线程有什么联系?

在浏览器中打开一个网页相当于新起了一个进程,每个进程内又会有自己的多线程(当然,浏览器有自身的优化机制,当你开了很多空的标签页的时候,可能会发现多个空白标签页被合并成了一个进程)。比如页面的渲染,JS的执行,事件的循环,都会在这个进程内进行。(以下用比较官方的术语列举一些主要常驻线程)

扩散思考1:浏览器为什么要弄成多进程的?

优点:

  • 避免单个标签页崩溃影响整个浏览器

  • 避免第三方插件崩溃影响整个浏览器

  • 多进程充分利用多核优势

  • 方便使用沙盒模型隔离插件等进程,提高浏览器稳定性

缺点:

  • 会占用更多的内存

4.1. GUI渲染线程

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消