本章所叙述的仅仅为了铺垫后面的浏览器运行机制,因此叙述的比较简单。
- 一个进程就是一个程序的运行实例。
- 线程是不能单独存在的,它是由进程来启动和管理的。
-
进程由操作系统分配资源地址,线程由进程分配管理
举个例子,来详细阐述。如下代码放在一个进程中。
单线程:顺序执行分四步。
多线程:x,y,z同时在不同线程内执行,计算出结果后再执行result。分两步。效率上显而易见了。
方便理解,如图。
let x = 1 + 1;
let y = 2 + 2;
let z = 3 + 3;
let result = x + y + z;
单线程: 多线程:
我们再细化一下多线程的图,以便再详细解释下进程与线程的关系。
进程和线程之间的关系有以下 4 个特点:
-
进程中的任意一线程执行出错,都会导致整个进程的崩溃。(记住这句话,我们接下来的优化点会跟它有关)
-
线程之间共享进程中的数据。(线程执行出的数据分配到进程中)
-
当一个进程关闭之后,操作系统会回收进程所占用的内存(操作系统管理进程)
-
进程之间的内容相互隔离(不同进程分配不同的资源地址)