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

线程的两种实现方式

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

1. 内核支持线程

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

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

该线程实现方式的优点:

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

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

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

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

该线程实现方式的缺点:

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

2. 用户级线程

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

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

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

        该线程实现方式的优点:

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

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

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

        该线程实现方式的缺点:

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

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

相关文章:

  • 鸿蒙OSUniApp实现的倒计时功能与倒计时组件(鸿蒙系统适配版)#三方框架 #Uniapp
  • 低损耗高效能100G O Band DWDM 10km光模块 | 支持密集波分复用
  • Elasticsearch 快速入门指南
  • ChromaDB 向量库优化技巧实战
  • SymPy | 使用SymPy求解多元非线性方程组
  • 合并两个有序数组的高效算法详解
  • 1.1 认识编程与C++
  • 黑马k8s(七)
  • 腾讯开源实时语音大模型VITA-audio,92mstoken极速响应,支持多语言~
  • 麒麟v10 部署 MySQL 5.6.10 完整步骤
  • javaSE.迭代器
  • AI Agent开发第67课-彻底消除RAG知识库幻觉-文档分块全技巧(1)
  • 密码学刷题小记录
  • QML学习01(设置宽度、高度、坐标点、标题,信号与槽,键盘事件)
  • 网页渲染的两条赛道
  • 【高斯拟合】不用库手写高斯拟合算法:从最小二乘到拟合参数推导
  • 牛客网NC22012:判断闰年问题详解
  • [c语言日寄]数据结构:栈
  • RAGFlow 中的 Rerank 和 Recall 解释
  • 大数据架构选型全景指南:核心架构对比与实战案例 解析
  • 商业合作及运营方案/免费的关键词优化工具
  • 爱唐山做贡献月评十佳投票网站/品牌设计公司排名前十强
  • 成都的汽车网站建设/搜索引擎推广的优势
  • 网站建设与管理心得体会和总结/12345浏览器网址大全
  • 一元云购网站建设教程/seo优化教程下载
  • 现货交易平台的新型骗局/网站seo是干什么的