当前位置: 首页 > news >正文

Linux多线程(二)之进程vs线程

文章目录

    • Linux进程VS线程
      • 进程和线程
      • 进程的多个线程共享
      • 关于进程线程的问题
    • 重谈地址空间
    • Linux线程周边的概念

Linux进程VS线程

进程和线程

  1. 进程是资源分配的基本单位(进程是承担分配系统资源的基本实体)

    执行流也是资源!线程是进程内部的执行流资源!

  2. 线程是操作系统调度的基本单位

  3. 线程共享进程数据,但也拥有自己的一部分数据:

线程ID
一组寄存器(线程的上下文数据)!!!!!!
栈!!!!!!
errno
信号屏蔽字
调度优先级

进程的多个线程共享

同一地址空间,因此Text SegmentData Segment都是共享的,

如果定义一个函数,在各线程中都可以调用,

如果定义一个全局变量,在各线程中都可以访问到,

除此之外,各线程还共享以下进程资源和环境:

文件描述符表!!
每种信号的处理方式(SIG_ IGN、SIG_ DFL或者自定义的信号处理函数)
当前工作目录
用户id和组id

进程和线程的关系如下图:

image-20250425225536647

关于进程线程的问题

如何看待之前学习的单进程?

具有一个线程执行流的进程

重谈地址空间

如何理解资源分配给各线程?

线程分配资源的本质

就是分配地址空间的范围!

如果不做划分就是各线程共享的!

页表深究

Linux线程周边的概念

线程 vs 进程

线程比进程要更轻量化(why?)

a.创建和释放更加轻量化(生死问题)

​ 创建线程只要把PCB创建

​ 创建进程要创建PCB、地址空间、页表、申请物理内存、构建映射等

​ 线程释放PCB

​ 进程就要释放创建、申请的资源

b.切换更加轻量化(运行问题)

​ 运行的代码变少了(线程只需要运行进程的一部分代码)

​ 线程切换不需要切换页表、不需要切换地址空间等(局部切换)

​ 线程在执行就是进程在执行。CPU里有一个硬件级别的缓存(cache

image-20250427170729722

image-20250427171218887

​ 线程切换的时候,虽然上下文在切换,但是cache里的热数据基本不变或者更新少量。

​ 进程切换的时候,cache里的热数据就要丢弃,需要重新缓存新的数据。
(冷数据->热数据需要时间)

线程也会有时间片,线程的时间片来源于进程,

时间片也是资源,所以合理分配给线程,

线程不能在进程中重新申请时间片,只能在进程中获取。

http://www.xdnf.cn/news/663697.html

相关文章:

  • Cell Metab.|复旦大学储以微、骆菲菲团队:Foxp3改造CAR-T,从「能量危机」到「代谢续航」的实体瘤治疗新路径
  • Android GPU Inspector深度解析:从零掌握驱动级性能数据抓取与优化
  • FastAPI 中间件
  • 电子标签倒计时应用
  • 从自发到赋能:产品经理的成长与 AI 时代的自我重塑
  • 测试W5500的第7步_使用ioLibrary库创建HTTP客户端
  • Linux中SHELL脚本常用命令
  • 安卓实用复制功能增强工具
  • 【杂谈】STM32使用快速傅里叶变换库函数后如何比较准确地找到n次谐波幅值
  • Python不要使用可变对象作为函数的默认参数
  • 记忆术-拼音字母形象法【针对“音形义“里谐音法的补充记忆法】
  • 布局泰国遇网络难题?中泰跨境网络组网专线成破局关键
  • Unity中的文件读写TXT 与XML
  • java中的线程安全的集合
  • 如何用DeepSeek修改论文,防止AI幻觉?
  • 题目 3331: 蓝桥杯2025年第十六届省赛真题-LQ 图形
  • 【Axure结合Echarts绘制图表】
  • 华为OD机试_2025 B卷_返回矩阵中非1的元素个数(Python,100分)(附详细解题思路)
  • Python应用“面向对象”小练习
  • 【深度学习】4. 参数初始化详解与数学推导: Xavier, He
  • 敦普水性双组份聚氨酯面漆检验报告(SGS、重金属含量、低voc)
  • 电路中常见器件及作用(电阻 电容 电感)
  • 如何通过PHPMyadmin对MYSQL数据库进行管理?
  • IP离线库与网站集成
  • 如何在 Windows 10 PC 上获取 iPhone短信
  • MS1205N激光测距用高精度时间测量(TDC)电路
  • 火山引擎云服务器带宽支持
  • 楼宇自控成智能建筑核心技术,提升节能效率,构筑绿色发展新优势
  • 多查询检索在RAG中的应用及为什么平均嵌入向量效果好
  • C/C++内存泄漏深度解析与系统化解决方案