面试题:进程与线程的区别

进程与线程的区别

程序与进程

  • 程序就是我们平时说的代码(静态的)
  • 进程是程序的一次执行过程(即把代码装载到内存中跑一次,是动态的)

进程与线程的区别

  • 1.从定义上区分:
    • 进程是程序的一次执行过程,是程序执行的最小单位
    • 线程是资源分配的基本单位,是调度运行的基本单位,是系统中并发执行的单位

!可以这么理解,一段代码跑一趟这一趟就是一个进程,代码中的一条执行路径就是该进程中的一个线程

  • 2.一个线程只能属于一个进程,一个进程能够拥有多个进程;多线程就是允许一个进程在同一时刻执行多个任务

  • 3.从内存空间分配来看:

    • 进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间。
    • 线程没有地址空间,线程包含在进程的地址空间中。
  • 4.从资源消耗情况来看

    • CPU切换一个线程比切换进程花费小
    • 创建一个线程比进程开销小
    • 线程占用的资源要⽐进程少很多
  • 5.从通信角度来看

    • 线程之间通信更方便,同一个进程下,线程共享全局变量,静态变量等数据,进程之间的通信需要以通信的方式(IPC)进行
  • 6.安全性角度

    • 多进程程序更安全,生命力更强,一个进程死掉不会对另一个进程造成影响(源于有独立的地址空间),多线程程序更不易维护,一个线程死掉,整个进程就死掉了(因为共享地址空间)
  • 7.资源保护的角度

    • 进程对资源保护要求高,开销大,效率相对较低,线程资源保护要求不高,但开销小,效率高,可频繁切换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

水能zai舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值