进程与线程的区别与联系

这两天学习操作系统,发现进程跟线程真的有很复杂的关系,下面我就进程与线程的联系及区别总结一下学习到的。

概念:

进程:进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。进程是拥有资源和独立调度的基本单位,进程是一个可拥有资源的独立单位,进程能够独立运行。引入进程是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量。进程之间的关系是相互独立与相互制约。进程同步的两种关系是,同步和互斥。

进程有一个时空开销的弊端(也就是进程之间的切换太过频繁会造成一定的资源浪费)。为了减少程序在并发执行时的时空开销的问题,我们在程序中引用了线程这个概念。也就是说,一个进程能够包含有多个线程。进程之间的地址不共享,线程之间的资源是共享的。同一进程的各个线程可以共享堆栈里面的内容。

 

线程:

线程是程序中一个单一的顺序控制流程。进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序的调度单位。在单个程序中同时运行多个线程完成不同的工作,称为多线程。多线程程序的并发性高。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.

 

进程与线程之间的区别

1,一个进程里面可以包含多个线程。一个程序至少有一个进程,一个进程至少有一个线程.

2,进程之间是不共享地址空间的,进程都是拥有独立的地址空间与能偶进行程序运行的资源。同一个进程之间的线程是用的同一个地址空间,共享进程的内存地址空间和资源,多个线程共享进程所拥有的资源。

3,进程是拥有资源和可独立调度和分派的基本单位,因而进程能够独立运行的基本单位。而线程是作为调度和分派的单位。

4,其实进程就是一次程序的运行,而线程是程序的一个片段

5,对进程的管理和控制主要是通过控制原语言实现的

6,进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文。多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值