面试必问——线程与进程的区别

总结了其他文章,给自己提供一个方便的复习途径

进程:

进程是程序的一次执行过程,是程序在执行过程中的分配和管理资源的基本单位,每个进程都有自己的地址空间,线程至少有 5 种状态:初始态、执行态、等待态、就绪态、终止态。

线程:

线程是CPU调度和分派的基本单位,它可以和同一进程下的其他线程共享全部资源

联系:

线程是进程中的一部分,一个进程可以有多个线程,但线程只能存在于一个进程中。

区别:

  1. 根本区别:进程是操作系统资源调度的基本单位,线程是任务的调度执行的基本单位
  2. 开销方面:进程都有自己的独立数据空间,程序之间的切换开销大;线程也有自己的运行栈和程序计数器,线程间的切换开销较小。
  3. 共享空间:进程拥有各自独立的地址空间、资源,所以共享复杂,需要用IPC(Inter-Process Communication,进程间通信),但是同步简单。而线程共享所属进程的资源,因此共享简单,但是同步复杂,需要用加锁等措施。

设计线程的原因:

操作系统模型中,进程有两个功能:

1、任务的调度执行基本单位

2、资源的所有权

线程的出现就是将这两个功能分离开来了:thread 执行任务的调度和执行 ; process 资源所有权

这样的好处是:

操作系统中有两个重要概念:并发隔离

并发:提高硬件利用率,进程的上下文切换比线程的上下文切换效率低,所以线程可以提高并发的效率

隔离:计算机的资源是共享的,当程序发生奔溃时,需要保证这些资源要被回收,进程的资源是独立的,奔溃时不会影响其他程             序的进行,线程资源是共享的,奔溃时整个进程也会奔溃

线程和并发有关系,进程和隔离有关系

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值