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

线程的两种实现方式

       线程的两种实现方式——内核支持线程(kernal Supported Thread, KST), 用户级线程(User Level Thread, ULT)

1. 内核支持线程

        顾名思义,内核支持线程即为在内核支持下的那些线程,它们的创建,阻塞,撤销和切换等,都是在内核空间中进行的。

        假如系统中设置的是内核支持线程,则调度便是以线程为单位进行的。

该线程实现方式的优点:

(1)在多线程处理器系统中,内核能够同时调度同一进程中的多个线程并行执行。

(2)如果一个进程中的线程阻塞了,内核可以调用该进程下的其他线程占用处理器,也可调用其他进程的线程。

(3)内核支持线程具有最小的数据结构和堆栈,线程的切换比较快,开销小。

(4)内核本身也可以采用多线程技术,可以提高线程的执行速度和效率。

该线程实现方式的缺点:

        对于用户的线程切换而言,其模式切换的开销较大,在同一进程内,从一个线程切换到另一个线程时,需要从用户态转到内核态进行,这是因为用户进程的线程在用户态运行,而线程调度和管理是在内核实现的,系统开销较大。

2. 用户级线程

        用户级线程实在用户空间中实现的。对线程的创建,撤销,同步与通信等,都无需内核的支持,即用户级线程与内核无关。在一个系统中的用户级线程的数目可以到达数百个乃至数千个。

        对于设置了用户级线程的系统,其调度仍是以进程为单位进行的。

        在进行跨进程调度时,用户级线程需要内核支持。

        该线程实现方式的优点:

(1)线程的切换无需转换到内核空间,从而节省了模式切换的开销。

(2)调度算法可以是线程专用的。

(3)用户级线程的实现与OS平台无关,因为对于线程管理的代码是属于用户程序的一部分,所有的应用程序都可以对之进行共享。

        该线程实现方式的缺点:

(1)系统阻塞调用问题。当线程执行一个系统调用时,不仅该线程被阻塞,该进程的所有线程都会被阻塞。而在内核支持线程中,则该进程中的其他线程仍然可以运行。

(2)在单纯的用户级线程实现方式中,多线程应用不能利用多处理机进行多重处理的优点,内核每次分配给一个进程的仅有一个CPU,因此,进程中仅有一个线程能执行,在该线程放弃CPU之前,其他线程只能等待。

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

相关文章:

  • 云服务模型深度解析:IaaS、PaaS 和 SaaS
  • DevExpressWinForms-TreeList-基础概念介绍
  • 《Java 大视界——Java 大数据在智能电网分布式能源协同调度中的应用与挑战》
  • 面试题:请解释Java中的垃圾回收机制(Garbage Collection, GC),并讨论不同的垃圾回收算法及其优缺点
  • 涨薪技术|0到1学会性能测试第65课-SQL捕获阻塞事件
  • HashSet
  • python打卡打印26
  • Github 2025-05-15 Go开源项目日报 Top10
  • 基于IBM BAW的Case Management进行项目管理示例
  • 单物理机上部署多个TaskManager与调优 Flink 集群
  • 【GESP】C++三级模拟题 luogu-B3849 [GESP样题 三级] 进制转换
  • MCP Server On FC 之旅2: 从 0 到 1 - MCP Server 市场构建与存量 OpenAPI 转 MCP Server
  • AWS Elastic Beanstalk控制台部署Spring极简工程
  • 小刚说C语言刷题—1088求两个数M和N的最大公约数
  • 动态规划-状态压缩DP
  • Spring 框架 JDBC 模板技术详解
  • Apache JMeter API 接口压测技术指南
  • Kafka如何实现高性能
  • 2025长三角杯数学建模C题思路分析:遇见“六小龙
  • VSCode CMake Debug
  • 【docker】--数据卷挂载
  • Unity3D开发AI桌面精灵/宠物系列 【六】 人物模型 语音口型同步 LipSync 、梅尔频谱MFCC技术、支持中英文自定义编辑- 基于 C# 语言开发
  • 如何安全配置好CDN用于防止DDoS与Web攻击 ?
  • 全面解析机器学习与深度学习中的模型权重文件格式与应用场景
  • 解决 Antd 日期组件国际化失败或者 TypeError: clone.weekday is not a function 问题
  • VSCode CMake工作流
  • Java并发编程:synchronized机制
  • Redis--基础知识点--26--过期删除策略 与 淘汰策略
  • 聊聊redisson的lockWatchdogTimeout
  • AWS Elastic Beanstalk部署极简Spring工程(EB CLI失败版)