进程与线程的区别

程序:是一些保存在磁盘上的指令的有序集合,是静态的。
进程管理资源有:存储器的有关信息(内存资源)、输入输出设备(IO资源)、有关文件系统的信息(信号处理)

为了减少进程切换和创建的开销,提高执行效率和节省资源,故在操作系统中引入“线程”概念。

1、进程:一个进程是一个程序对某个数据集的执行过程,包括了动态创建、调度和消亡的过程,进程系统是分配资源的最小单位。线程是cpu调度的最小单位。

2、一个线程只能属于一个进程,而一个进程可以有多个线程。线程是进程的一部分,线程没有自己的地址空间,线程只能共享它所属进程的资源。

3、进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。资源分配给进程,同一进程的所有线程共享该进程的所有资源。同一进程中的多个线程共享代码段(代码和常量),数据段(全局变量和静态变量)、扩展段(堆存储)。但是每个线程拥有自己的栈段,栈段又叫运行时段,用来存储局部变量和临时变量。

4、系统开销:进程的切换的开销也远大于线程切换的开销
由于在创建或者撤销进程时,系统都要为之分配或者回收资源,如:内存空间、i/o、设备。因此,操作系统所付出的开销将显然大于在创建或撤销线程的开销。类似的,在进行进程切换时,涉及到整个当前进程CPU环境的保存以及新被调度运行进程cpu环境的设置。而线程切换只须保存和设置少量的寄存器的内容,并不涉及存储器管理方面的操作。

5、通信:由于同一进程中的多个线程具有相同的地址空间,致使它们之间的同步和通信的实现也变的比较容易。进程间的通信IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信,(需要用到进程同步和互斥手段的辅助,以保证数据的一致性)。

6、进程间不会 相互影响 ;线程:一个线程挂掉将导致整个进程挂掉。

如图:
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值