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

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.lryc.cn/news/2386782.html

相关文章:

  • 【MogDB】测试 ubuntu server 22.04 LTS 安装mogdb 5.0.11
  • AI时代新词-数字孪生(Digital Twin)
  • 【HW系列】—web常规漏洞(文件上传漏洞)
  • 如何实现 C/C++ 与 Python 的通信
  • python炸鱼船
  • 使用AutoKeras2.0的AutoModel进行结构化数据回归预测
  • 好用但不常用的Git配置
  • ULVAC VWR-400M/ERH 真空蒸发器 Compact Vacuum Evaporator DEPOX (VWR-400M/ERH)
  • P1068 [NOIP 2009 普及组] 分数线划定
  • PPT连同备注页(演讲者模式)一块转为PDF
  • 第三十二天打卡
  • 项目三 - 任务8:实现词频统计功能
  • MongoDB 快速整合 SpringBoot 示例
  • 2025.05.22-得物春招机考真题解析-第二题
  • ollama list模型列表获取 接口代码
  • OPC Client第5讲(wxwidgets):初始界面的事件处理;按照配置文件初始化界面的内容
  • 什么是BFC,如何触发BFC,BFC有什么特性?
  • python做题日记(9)
  • Leetcode 3557. Find Maximum Number of Non Intersecting Substrings
  • 【C++进阶篇】初识哈希
  • Spring Boot——自动配置
  • 免费轻量便携截图 录屏 OCR 翻译四合一!提升办公效率
  • 使用 Vuex 实现用户注册与登录功能
  • 进程通信(管道,共享内存实现)
  • 电池预测 | 第28讲 基于CNN-GRU的锂电池剩余寿命预测
  • 快速上手SHELL脚本常用命令
  • 【无标题】前端如何实现分页?
  • 【自然语言处理与大模型】大模型Agent四大的组件
  • 小巧高效的目录索引生成软件
  • 云原生架构设计相关原则