进程与线程,了解一下

参加过面试的小伙伴们应该都知道,进程和线程经常是被面试官问道的,但是你们真的了解吗?我自己呢为了搞清楚这个问题,今天就想跟大家深入探讨一下.

一.首先我们从概念出发

进程:进程是操作系统中资源分配的基本单位.进程是操作系统对正在运行程序的一种抽象,可以把进程看作程序的一次运行.
线程:线程是操作系统中调度执行的基本单位.一个线程是一个"执行流",每个线程之间都可以按照顺序执行自己的代码,多个线程"同时"执行多份代码.

二.为什么要引入线程
  • 首先,“并发编程"成为"刚需”.
  • 多进程也能实现并发编程,但是线程比进程更轻量.
三.进程与线程的区别与联系

首先根据一张图我们来了解一下进程与线程的基本关系:
进程与线程

  • 本质区别: 进程是操作系统资源分配的基本单位,则线程是处理器任务调度和执行的基本单位.
  • 包含关系: 进程包含线程,一个进程里面可以包含一个线程,也可以包含多个线程
    ,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程.
  • 影响关系: 进程具有独立性,每个进程都有各自的虚拟地址空间,一个进程挂了,不会影响到其他进程;但是同一个进程中的多个线程公用一个内存空间,一个线程挂了,可能会影响到其他线程,甚至导致整个进程崩溃.
  • 资源开销: 每个进程都有独立的地址空间,进程之间的切换会有较大的开销;线程可以看做轻量级的进程,同一个进程里的线程共享地址空间,因此线程之间的切换开销会小一些.

在这里这些过于理论的知识可能让人不太好理解两者的区别,下面我给大家举个例子:

在生活中大家可能都见过工厂,而这里的一个工厂就相当一个进程,一个工厂里面可以有一条生产线,我们可以把这里的生产线当做一个线程;当一个工厂盈利越来越好时,一个工厂或者一条生产线就供不应求了,老板们就想到两个办法:在这个工厂的附近重新开一个工厂(进程)或者是在这个工厂里在加一条生产线(线程).老板转念一想,多开一个工厂花费的资金肯定多,还要买地干啥的,不是很划算;然后想着工厂的某个地方还有一块空地,就在此处多加一条生产线,此时这一个工厂就有两条生产线.

1.工厂可以看做进程,生产线就可以看做线程;工厂里面包含生产线
2.开一个工厂比新加一条生产线费时间金钱
3.几个生产线在同一个工厂,公用一个工厂.
4.工厂与工厂之间不会有影响,但是生产线与生产线直接会有影响.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值