> 历史文化
进程与线程的区别与联系(c
导语:进程与线程的区别
1 进程
进程就是应用程序在内存中分配的空间,也就是正在运行的程序,各个进程之间互不干扰。同时进程保存着程序每一个时刻运行的状态。
2 线程
一个进程就包含了多个线程,让一个线程执行一个子任务,每个线程负责一个单独的子任务。
3 进程与线程的区别
3.1 区别一
进程是独立运行的环境,而线程是进程中执行的任务,他们的本质区别是否独占内存地址空间及其它系统资源(比如I/O)。
进程单独占有一定的内存地址空间,所以进程间存在内存隔离,数据是分开的,数据共享复杂但是同步简单,各个进程之间互不干扰;而线程共享所属进程占有的内存地址空间和资源,数据共享简单,但是同步复杂。进程单独占有一定的内存地址空间,一个进程出现问题不会影响其他进程,不影响主程序的稳定性,可靠性高;一个线程崩溃可能影响整个程序的稳定性,可靠性较低。进程单独占有一定的内存地址空间,进程的创建和销毁不仅需要保存寄存器和栈信息,还需要资源的分配回收以及页调度,开销较大;线程只需要保存寄存器和栈信息,开销较小。3.2 区别二
另外一个重要区别是,进程是操作系统进行资源分配的基本单位,而线程是操作系统进行调度的基本单位,即CPU分配时间的单位 。
4 为什么要从进程升级成线程
主要是为了提高计算机处理效率。
进程虽然可以实现并发,但是进程之间的通信比线程要复杂的多。在共享资源时,这些资源在线程间的通信比较容易实现。进程是重量级的,线程是轻量级的,所以线程开销比较小。本文内容由小姬整理编辑!