搜索
写经验 领红包

进程与线程的区别与联系(c

导语:进程与线程的区别

进程与线程的区别与联系(c++进程与线程的区别)

1 进程

进程就是应用程序在内存中分配的空间,也就是正在运行的程序,各个进程之间互不干扰。同时进程保存着程序每一个时刻运行的状态。

2 线程

一个进程就包含了多个线程,让一个线程执行一个子任务,每个线程负责一个单独的子任务。

3 进程与线程的区别

3.1 区别一

进程是独立运行的环境,而线程是进程中执行的任务,他们的本质区别是否独占内存地址空间及其它系统资源(比如I/O)。

进程单独占有一定的内存地址空间,所以进程间存在内存隔离,数据是分开的,数据共享复杂但是同步简单,各个进程之间互不干扰;而线程共享所属进程占有的内存地址空间和资源,数据共享简单,但是同步复杂。进程单独占有一定的内存地址空间,一个进程出现问题不会影响其他进程,不影响主程序的稳定性,可靠性高;一个线程崩溃可能影响整个程序的稳定性,可靠性较低。进程单独占有一定的内存地址空间,进程的创建和销毁不仅需要保存寄存器和栈信息,还需要资源的分配回收以及页调度,开销较大;线程只需要保存寄存器和栈信息,开销较小。

3.2 区别二

另外一个重要区别是,进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位,即CPU分配时间的单位 。

4 为什么要从进程升级成线程

主要是为了提高计算机处理效率。

进程虽然可以实现并发,但是进程之间的通信比线程要复杂的多。在共享资源时,这些资源在线程间的通信比较容易实现。进程是重量级的,线程是轻量级的,所以线程开销比较小。

本文内容由小姬整理编辑!