进程和线程的区别及联系

1、进程:正在运行的程序,是系统进行资源分配的独立单位。
2、线程:进程的执行路径,调度和执行的单位,是cpu调度的最小单位,单个路径单线程,多个路径多线程。
区别:
①调度的基本单位:在传统的OS中,进程作为独立调度和分派的基本单位,因而进程是能独立运行的基本单位。在每次被调度时,都需要进行上下文切换,开销较大。而在引入线程的os中,已把线程作为调度和分派的基本单位,因此线程是能独立运行的基本单位。在线程切换时,仅需保存和设置少量寄存器内容,切换代价远低于进程。在同一个进程中,线程的切换不会引入进程的切换,但从一个进程中的线程切换到另一个进程中的线程时,必然会引起进程的切换。
②并发性:不同进程之间可以并发执行,而在一个进程中的多个线程之间也可以并发执行,甚至还允许在一个进程中的所有线程都能并发执行。同样,不同进程中的线程也能并发执行。
③拥有资源:进程可以拥有系统资源,并作为系统中拥有资源的一个基本单位。然而,线程本上并不拥有系统资源,而是仅有一点比不可少的、能保证独立运行的资源。比如程序计算器,少数状态参数和返回地址等一组寄存器和堆栈。不过线程可以共享该进程内所有资源,比如已打开的文件,定时器,信号量机构等的内存控制接纳和它所申请到的IO设备。
④独立性:同一个进程中的不同线程之间的独立性要比不同进程之间的独立性低得多。这是因为,为防止进程之间彼此干扰和破坏,每个进程之间都拥有一个独立的地址控制和其他资源,除了共享全局变量外,不允许其他进程的访问。但是同一进程的不同线程往往是为了提高并发性以及进行相互之间的合作而创建的,他们共享进程的内存地址空间和资源,如每个线程度可以访问他们所属进程地址空间的所有地址。
⑤系统开销:在创建和撤销进程时,系统都要为之分配和回收进程控制块、分配和回收其他资源,如内存空间和I/o设备等。因此明显大于线程的创建和撤销时所付出的开销。
总的来说:多进程的意义是提高CPU使用率,而多线程的意义是为了提高应用程序的效率
一个比较生动的关于线程和进程解释的例子

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
进程是操作系统进行资源分配的基本单位,而线程进程内的一个执行单元,也是进程内的可调度实体。一个进程可以包含多个线程,而线程共享了进程的某些资源。进程线程之间存在以下区别: 1. 本质区别进程是操作系统进行资源分配的基本单位,而线程是独立调度和分派的基本单位。 2. 包含关系:一个进程内可以有多个线程线程进程的一部分,因此线程也被称为轻量级进程或轻权进程。 3. 资源开销:每个进程都有独立的代码和数据空间,程序之间的切换会有较大的开销;而线程可以看作轻量级的进程,同一类线程共享代码和数据空间,线程之间切换的开销小。 4. 创建和销毁:创建一个进程需要遍历内存资源找到合适的内存再分配给它,销毁进程也需要遍历内存资源。而创建和销毁一个线程相对不那么麻烦。 5. 内存分配:同一个进程线程共享本进程的地址空间和资源,而进程之间的地址空间和资源是相互独立的。 6. 影响关系:一个进程崩溃后,在保护模式下不会对其他进程产生影响;但一个线程崩溃可能会导致包含该线程的整个进程直接死掉。 7. 操纵者不同:进程的操纵者一般是操作系统,线程的操纵者一般是编程人员。 8. 执行过程:每个独立的进程有程序运行的入口、顺序执行序列和程序出口,而线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值