一. 定义
进程:进程是能在系统中独立运行并作为资源分配的基本单位,是CPU分配资源的最小单位,它包括独立的地址空间,资源以及一至多个线程。
线程:线程是进程中的一个实体,是CPU调度的最小单位。
二. 两者关系
其实线程和进程可以理解成父级与子级的关系,一个进程可以包含一个或者多个线程。进程主要是负责保护和管理资源,而线程主要负责是CPU执行代码的过程。
比个如啊:你打开了酷狗,于是系统就创建了一个进程,然后你开始播放一首歌,这里就创建了一个线程,同时你又点击下载其他歌曲,又创建一个线程。你觉得只听歌无聊,又打开qq,这里系统就创建了另一个进程,你开始跟a聊天,这里创建了一个线程,跟a聊着不过瘾,跟b开上了视频,又创建了一个线程。突然,你的qq崩了,视频也看不到人了,跟a的聊天也卡死了,但是你的酷狗音乐并没有受到影响。
举这个例子,就是想说明,进程有独立的空间地址,几个进程之间是不会相互影响的,qq崩了不会影响酷狗,但是线程没有独立的空间地址,也就是它几乎不占有系统资源,一个进程的几个线程间共享该进程占有的资源,只要有一个线程崩了,就会影响它的进程,导致进程崩溃。
三. 两者对比
进程 | 线程 |
分配资源的最小单位 | 系统调度的最小单位 |
有独立空间地址 | 没有独立空间地址,多线程共享所属进程的空间地址 |
进程间相互不影响 | 同一进程的线程间同步或互斥,不同进程的线程间可以并发执行 |
一个进程含有一至多个线程 | 一个线程归属于一个进程 |
创建进程时间消耗较大 | 创建线程时间消耗较小 |