前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题:线程与进程区别

面试题:线程与进程区别

作者头像
Python进击者
发布2020-05-29 10:48:36
5.2K0
发布2020-05-29 10:48:36
举报
文章被收录于专栏:JAVAandPython君JAVAandPython君

线程与进程

今天在牛客网上看面经,看到了这个题目。线程和进程在学习操作系统时,是必学的科目之一。但是往往第一眼看上去,都会有点懵。今天整理一篇短文章,来写一下线程和进程的区别。

根据我的理解,画了一幅图。

首先我们需要明白的是进程 > 线程 (虽然并不严谨,但是可以这样认为)

用一句专业术语来描述他们之间的区别:进程是CPU资源分配的最小单位,线程是CPU调度的最小单位

我在知乎上看到了一个匿名用户很好的比喻:

但是我们到底要怎么去跟面试官说清楚呢?

其实大家可以总结一下:

  1. 进程

一个进程就是CPU执行的单个任务的过程,是程序在执行过程当中CPU资源分配的最小单位,并且进程都有自己的地址空间,包含了运行态、就绪态、阻塞态、创建态、终止态五个状态。

  1. 线程

线程是CPU调度的最小单位,它可以和属于同一个进程的其他线程共享这个进程的全部资源

  1. 两者之间的关系

一个进程包含多个线程,一个线程只能在一个进程之中。每一个进程最少包含一个线程。

  1. 两者之间的区别

其实最根本的区别在刚开始就说了:进程是CPU资源分配的最小单位,线程是CPU调度的最小单位

进程之间的切换开销比较大,但是线程之间的切换开销比较小。

CPU会把资源分配给进程,但是线程几乎不拥有任何的系统资源。因为线程之间是共享同一个进程的,所以线程之间的通信几乎不需要系统的干扰。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python进击者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 线程与进程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档