1.2.1 进程与线程分别是什么?又有什么联系?

Posted 小小码农,可笑可笑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.2.1 进程与线程分别是什么?又有什么联系?相关的知识,希望对你有一定的参考价值。

本章所叙述的仅仅为了铺垫后面的浏览器运行机制,因此叙述的比较简单。

  • 一个进程就是一个程序的运行实例。
  • 线程是不能单独存在的,它是由进程来启动和管理的。
  • 进程由操作系统分配资源地址,线程由进程分配管理

举个例子,来详细阐述。如下代码放在一个进程中。

单线程:顺序执行分四步。

多线程:x,y,z同时在不同线程内执行,计算出结果后再执行result。分两步。效率上显而易见了。

方便理解,如图。

let x = 1 + 1;
let y = 2 + 2;
let z = 3 + 3;
let result = x + y + z;

单线程:                                          多线程: 

我们再细化一下多线程的图,以便再详细解释下进程与线程的关系。


 

进程和线程之间的关系有以下 4 个特点:

  1. 进程中的任意一线程执行出错,都会导致整个进程的崩溃。(记住这句话,我们接下来的优化点会跟它有关)

  2. 线程之间共享进程中的数据。(线程执行出的数据分配到进程中)

  3. 当一个进程关闭之后,操作系统会回收进程所占用的内存(操作系统管理进程)

  4. 进程之间的内容相互隔离(不同进程分配不同的资源地址)

以上是关于1.2.1 进程与线程分别是什么?又有什么联系?的主要内容,如果未能解决你的问题,请参考以下文章

线程与进程的区别以及联系

Java多线程 -- 什么是线程和进程线程和进程的联系(Java内存结构)并发与并行为何使用多线程使用多线程可能带来什么问题

一篇让你明白进程与线程之间的区别与联系

程序进程与线程分别是什么,怎么区分?

线程与进程

iOS中RunLoop和线程的关系