进程和线程

进程

  • 一个进程就是一个程序的运行实例。
  • 在启动一个程序的时候,计算机的操作系统会为程序分配一块内存空间,用于存放代码、运行中的数据和一个执行任务的主线程,这样的一个运行环境就是一个进程。
  • 当一个进程被关闭后,操作系统会回收进程所占用的内存。

    线程

  • 线程依附于进程,由进程启动和管理。

    并行处理

  • 计算机并行处理就是计算机能(至少看上去似乎是)同时处理多个任务。使用并行处理能够大大提升性能。

  • 例如,对于以下几个任务

    1. 任务1a = 1 + 2;
    2. 任务2b = 3 * 4;
    3. 任务3c = 5 - 6;
    4. 任务4d = a + b + c;
  • 如果使用单线程来计算,要分四个步骤执行这些任务,首先计算a,然后计算b,再计算c,最后将三者相加计算出d的值。

  • 但是,如果使用并行处理的话,只需要两个步骤。第一个步骤是同时用三个线程分别执行任务123,第二个步骤是执行任务4。
  • 单线程中需要四步才能完成的东西,使用多线程只需要两步!

thread.png

进程与线程的关系

  1. 进程中的任意线程出错,都会导致整个进程的崩溃;
  2. 线程之间共享进程中的数据;进程之间的内容相互隔离;


Chrome多进程架构

这里探讨的是较新版本的Chrome的多进程架构

Chrome多进程

ChromeThread.png

浏览器主进程(Browser)

  • 界面显示,用户交互,子进程管理。(同时提供存储功能);

    渲染进程

  • 将HTML、CSS、JavaScript转换成用户可以与之交互的网页;

    GPU进程

  • 最初用于实现3D CSS效果,现在也用来网页绘制等;

    网络进程

  • 负责页面的网络资源加载;

    插件进程

  • 负责插件的运行。(将插件隔离以减少插件的崩溃对浏览器的影响);

    优缺点

    优点

  • 提升了浏览器的稳定性、流畅性和安全性;

    缺点

  • 更高的资源占用更复杂的体系结构

未来面向服务的架构(SOA)