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

操作系统-用户级-内核级线程

一、先明确几个基本概念:

  1. 用户级线程(ULT)

    • 完全由用户空间的线程库(如 pthreadgreen threads)管理。

    • 操作系统内核对此一无所知。

    • 切换线程时,不需要进入内核,效率高,但缺乏内核调度的支持。

  2. 内核级线程(KLT)

    • 每个线程都由操作系统内核管理,调度和切换由内核负责。

    • 可以在多核CPU上并行执行

  3. 进程和线程的关系

    • 一个进程可以包含多个线程。

    • 多线程程序是否能在多核CPU上并发执行,取决于线程的实现方式。

🔹二、为什么用户级线程不能利用多核?

🌟根本原因:内核只看到一个“线程”

当使用用户级线程时:

  • 在内核看来,整个进程就只有一个执行实体(即一个内核线程/调度单位)。

  • 所以不管你在用户空间创建了多少“线程”,内核都只能把这个进程调度到一个CPU上执行。

  • 这就意味着,即使有多个CPU核心,也只能在一个核心上跑一个用户线程其他线程只能排队等候

🔹三、为什么不能多个用户线程同时执行?

因为:

  • 用户级线程的调度完全在用户空间,不需要内核介入;

  • 但进程只有一个内核线程被调度,CPU只允许这个“唯一的”线程执行代码

  • 所以其他用户线程只能等待,不可能同时运行,更不能跨多个核心运行。

🔹总结一句话:

用户级线程不能利用多CPU,是因为内核只为整个进程分配一个执行实体(一个内核线程),因此同一时刻只能有一个用户线程运行。

✅一个线程 运行时 需要占用一个 CPU

相关文章:

  • IOT项目——物联网 GPS
  • 25.4.22华为--算法真题整理(2025年4月22日)
  • 全本地化智能数字人
  • 一个 HTTP 请求进入 Spring MVC 应用后,大致经历了哪些主要步骤?
  • 电商平台数据采集与 QPS 计算全流程解析
  • 逻辑思维与软件开发:从选定方向到风险管理的全流程
  • Linux DRM显示驱动框架技术总结
  • 进阶篇 第 5 篇:现代预测方法 - Prophet 与机器学习特征工程
  • 今日CSS笔记
  • SAS宏调试:高效定位与解决典型问题
  • WLAN 漫游技术全解析:类型、转发模式与应用场景
  • 深度学习--卷积神经网络数据增强
  • 【Linux网络】构建基于UDP的简单聊天室系统
  • python入门简介
  • 课时一 平面机构的自由度与速度分析(上)
  • c语言修炼秘籍 - - 禁(进)忌(阶)秘(技)术(巧)【第七式】程序的编译
  • 生产环境大数据平台权限管理
  • python数据分析(二):Python Pandas索引技术详解
  • 7.6 GitHub Sentinel后端API实战:FastAPI高效集成与性能优化全解析
  • MuJoCo中的机器人状态获取
  • 世界最大全电驱可拆装环保绞吸船投入官厅水库清淤试点工程
  • 谁为金子疯狂:有人贷款十万博两千,有人不敢再贸然囤货
  • 民建吉林省委提案:当前生育政策集中鼓励多孩生育,应该转变思路
  • 观察|智驾监管升级挤掉宣传水分,行业或加速驶入安全快车道
  • 老年人越“懒”越健康,特别是这5种“懒”
  • 报告:去年物业服务百强企业营业收入均值同比增长3.52%