前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >浏览器的线程和进程

浏览器的线程和进程

作者头像
张张
修改2019-12-27 10:23:16
3910
修改2019-12-27 10:23:16
举报
文章被收录于专栏:前端全栈开发者

线程 VS 进程

多线程可以并行处理任务,但是线程是不能单独存在的,它是由进程来启动和管理的 一个进程就是一个程序的运行实例。详细解释就是,启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程

单线程与多线程的进程对比图
单线程与多线程的进程对比图

单线程与多线程的进程对比图

线程是依附于进程的,而进程中使用多线程并行处理能提升运算效率。

总结来说,进程和线程之间的关系有以下 4 个特点。

  1. 进程中的任意一线程执行出错,都会导致整个进程的崩溃。
  2. 线程之间共享进程中的数据。
  3. 当一个进程关闭之后,操作系统会回收进程所占用的内存。
  4. 进程之间的内容相互隔离。

仅仅打开了 1 个页面,为什么有 4 个进程?

因为打开 1 个页面至少需要 1 个网络进程、1 个浏览器进程、1 个 GPU 进程以及 1 个渲染进程,共 4 个;如果打开的页面有运行插件的话,还需要再加上 1 个插件进程。

不过凡事都有两面性,虽然多进程模型提升了浏览器的稳定性、流畅性和安全性,但同样不可避免地带来了一些问题:

  • 更高的资源占用。因为每个进程都会包含公共基础结构的副本(如 JavaScript 运行环境),这就意味着浏览器会消耗更多的内存资源。
  • 更复杂的体系架构。浏览器各模块之间耦合性高、扩展性差等问题,会导致现在的架构已经很难适应新的需求了。

参考资料:极客时间《浏览器工作原理与实践》,01 | Chrome架构:仅仅打开了1个页面,为什么有4个进程?https://time.geekbang.org/column/article/113513

本文代表个人观点,内容仅供参考。若有不恰当之处,望不吝赐教!

本文链接:https://zhangbing.site/2019/08/25/浏览器的线程和进程/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 线程 VS 进程
  • 仅仅打开了 1 个页面,为什么有 4 个进程?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档