浅谈进程与线程的关系和区别

一、概念

**进程:**进程是一个具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统资源分配和独立运行的最小单位;
**线程:**线程是进程的一个执行单元,是任务调度和系统执行的基本单位;

二、区别

**1、根本区别:**进程是操作系统资源分配和独立运行的最小单位;线程是任务调度和系统执行的最小单位。
**2、地址空间区别:**每个进程都有独立的地址空间,一个进程崩溃不影响其它进程;一个线程组中多个线程共享一个进程的地址空间,一个线程的非法操作会使整个进程崩溃。
**3、上下文切换开销区别:**每个进程有独立的代码和数据空间,进程之间上下文切换有较大的开销;线程组共享代码和数据空间,线程之间切换的开销较小。
**4、 包含关系区别:**一个进程由一个或多个线程组成;线程是一个进程中代码的不同执行路线。

三、联系

进程和线程之间的联系如下图所示:
浅谈进程与线程的关系和区别
浅谈进程与线程的关系和区别
(该图转自博客https://blog.****.net/weixin_43258908/article/details/89417917

四、总结

线程执行的开销小,一般优先使用线程。