进程 (process) 与线程 (thread) 的区别

本文通过将进程比作火车,线程比作车厢,生动形象地解释了进程和线程的区别。进程是资源分配的单位,线程是CPU调度的单位。一个进程可以有多个线程,它们共享数据并由操作系统协调防止冲突。理解这一概念对于计算机科学特别是操作系统的学习至关重要。
摘要由CSDN通过智能技术生成

进程(process)和 线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。

今天在某小众技术论坛看到有人发帖,述说自己面试滴滴的经历。

其中提到面试过程中被问到 进程线程 的区别,一下子没回答上来导致面试失败了。

看到这里,我回想了一下 进程 和 线程 的相关知识,具体概念比较抽象。正好最近读到一篇材料,发现一个很好的类比,可以把它们以清晰易懂的方式解释。于是在这里记录下来。

 

首先看看标准的解释:

"进程是资源分配的最小单位,线程是CPU调度的最小单位"

这个回答比较抽象,不太容易理解。有种似懂非懂的感觉。

 

为了便于理解做个简单的比喻:进程==火车,线程==车厢

  • 线程在进程下运行(车厢无法单独运行)
  • 一个进程可以包含多个线程(一辆火车可以有多个车厢)
  • 不同进程间的数据难以共享(很难从一辆火车上转移到另一辆火车上)
  • 同进程下的线程数据容易共享(车厢间的切换则很容易)
  • 进程要比线程更消耗资源(多个火车运行比一辆火车多个车厢要消耗更多资源)
  • 进程不会相互影响,线程容易影响进程(一列火车起火不会影响到另外一列火车,如果一间车厢起火容易影响整辆火车)

操作系统设计,大致可以归结为三点:

  • 允许多个任务同时运行,多进程形式
  • 单个任务分成不同部分运行,多线程形式
  • 提供协调机制,一方面防止进程之间和线上之间产生冲突,另一方面允许进程之间和线程之间共享资源。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值