实现线程的三种方式KLT/ULT/LWP

article/2025/8/22 11:51:53

大家好,我是神韵,是一个技术&生活博主。关于文章都是定位为基础,我不敢讲的太深入,因为我怕自己没时间。欢迎来点赞打卡,你们的行动将是我无限的动力。
今日主题是:实现线程的三种方式KLT/LWP/ULT

  三种线程的实现主要是内核线程(KLT)用户线程(ULT)用户线程加轻量级进程混合,其中轻量级进程又称LWP。

1、内核线程实现

  内核线程(Kernal-Level Thread)简称KLT,这种线程实现是指直接由操作系统内核来完成线程支持、线程切换和操纵调度器进行调度即线程映射到各个处理器
  但是,程序一般不会直接去使用内核线程,而是通过去使用内核线程的一种高级接口叫轻量级进程(Light Weight Process)去操作内核线程(官方定义名称,在大多数系统中,LWP与普通进程的区别也在于它只有一个最小的执行上下文和调度程序所需的统计信息,而这也是它之所以被称为轻量级的原因)。并且它们之间的关系是1:1存在。需要注意的是只有先支持内核线程,才能有轻量级进程。

优势:因为有轻量级进程与内核线程的1:1方式支持,轻量级进程属于一个独立调度单元,就算阻塞也不会响应整个系统工作。
劣势:线程的创建、析构及同步都要进行系统调用,需要在用户态(User Mode)和内核态(Kernel Mode)中来回切换。由于1:1方式支持,所以需要消耗内核资源(内核线程的栈空间)。
  下面是它们之间的关系图(进程P通过轻量级进程LWP调用内核KLT,内核线程通过调度器Thread Scheduler调度将任务映射到相应的CPU上)
在这里插入图片描述

2、用户线程实现

  用户线程是指完成建立在用户空间的线程库上(十分复杂的库),用户线程池的建立、同步、销毁和调度完全在用户态中完成,系统内核不能感知用户线程的存在,也不需要内核的帮助,这种线程不需要切换到内核态,操作非常快速且低消耗。

优势:不需要系统内核支持,所有操作在用户态完成。不需要消耗用户态(User Mode)和内核态(Kernel Mode)中来回切换的资源及内核资源。
劣势:需要一个复杂的线程库去支持用户线程的各种操作(创建、切换调度等),对于阻塞处理、多处理器如何映射到其他处理器这类问题上解决起来困难甚至不能完成。

进程P与用户线程1:N的关系图(CPU分配到程序P,由程序P完成用户线程调度,分配资源)
在这里插入图片描述

3、用户线程加轻量级进程混合实现

  在这种混合模式下,即存在用户线程也存在轻量级进程。用户线程完全建立在用户态空间上,完成对用户线程的创建、切换析构等操作,并且大规模支持并发。并且操作系统支持通过轻量级进程来作为用户线程和内核线程之间的桥梁,这样可以使用内核提供的线程调度功能及处理器映射(这个是用户线程基本不可能完成的操作)。

优势:拥有用户线程,对线程创建、切换等操作低消耗。通过轻量级线程去调用内核线程,大大降低进程被完全阻塞的风险。
劣势:线程调度及处理器需要内核支持,涉及用户态和内核切换的操作。

下面是用户线程与轻量级进程N:M的关系图:

在这里插入图片描述

总结:

  内核线程是依赖操作系统内核实现,用户线程是完全由自己实现,用户线程加轻量级进程混合是将内核与用户线程一起实现。

本文结束!


http://chatgpt.dhexx.cn/article/A4N5Y2UU.shtml

相关文章

Linux——一文彻底了解进程id和线程id的关系(什么是pid、tgid、lwp、pthread_t)

目录 一.内核层面:pid & tgid 二.函数调用层面:getpid & gettid & pthread_self 三.用户层面:PID & LWP(TID) 四.总结 一.内核层面:pid & tgid 首先,我们要清楚&#…

LWIP简介

1介绍 lwIP 是 TCP/IP 协议套件的小型独立实现。lwIP TCP/IP 实现的重点是减少 RAM 使用同时仍然有一个完整的 TCP。这使得 lwIP 适合使用在具有数十 KB 可用 RAM 和空间的嵌入式系统中大约 40 KB 的代码 ROM。 lwIP 最初由计算机和网络的 Adam Dunkels 开发瑞典计算机科学研究…

Linux进程、线程模型,LWP,pthread_self()

一.定义 关于进程、轻量级进程、线程、用户线程、内核线程的定义,这个很容易找到,但是看完之后你可以说你懂了,但实际上你真的明白了么? 在现代操作系统中,进程支持多线程。进程是资源管理的最小单元&…

Linux下线程(LWP)的相关概念

一.概念 线程:一个进程内部的控制序列。或者说在一个程序里的一个执行路线 首先明确一个概念,在Linux下是没有进程的控制块的,使用进程模拟的线程。一个进程中至少有一个线程。所以进程跟线程的数量是一对(一)多的。…

Linux-线程(LWP)

文章目录 线程线程概念进程今天的进程 vs之前的进程私有和共享资源实验验证线程的优点:线程的缺点:线程异常线程的用途: 线程控制创建线程(1)先创建两个线程:链接时要引入第三方库。(2)创建多个线程:(3)线程的健壮性不…

护眼色的RGB值 和 颜色代码

在搜索引擎搜“护眼色”,就会搜出一堆关于保护眼睛的屏幕颜色文章,说的统统是一种颜色,有点像绿豆沙的颜色。方法就是在屏幕设置里。 色调: 85; 饱和度: 123; 亮度: 205; R: 199; G: 237; B: 204; 颜色代码是: #…

护眼绿RGB值

网上流行护眼色的RGB值分别为: R: 204 G: 232 B: 207 以matlab R2017b ,设置背景色为护眼绿 为例: 预设——>颜色——> 取消勾选 使用系统颜色——> 背景——>RGB——> RGB依次输入 204, 232, 207—…

护眼参数设置

2019独角兽企业重金招聘Python工程师标准>>> 一、护眼背景色参数 柔和的豆沙绿: 色调:85 饱和度:123 亮度:205 对眼睛有益的RGB数值分别是(199,237,204) 二、eclipse左侧背景色设置 这是跟系统设…

Win10如何设置护眼色

https://blog.csdn.net/xiao297328/article/details/79888156 效果图: 在cmd中输入regedit 重启电脑即可

pdf阅读器修改背景颜色 护眼色

1, pdf and word setting 护眼色 586 3215 1586155 RGB: 170, 207, 184 2, 福昕阅读器设置 3 adobe acrobat

eclipse设置护眼色(一劳永逸)

无需在eclipse中设置,避免切换工作空间后失效。 第一步:首先使用 Win R 组合快捷键,打开“运行”,然后键入打开注册表命令regedit,按回车键确认打开。 第二步:打开注册表之后,依次在左侧树状菜…

vscode调教界面为护眼色

第1步:在vscode上安装主题插件Atom One Light Theme 在扩展商店里输入atom关键词(或者直接输入全), 找到如下对应的插件安装并使用 确认使用(如果没有更改过快捷键,那么ctrl按住不放,再依次按…

word设置背景色为护眼的绿色

word 2019设置背景色为护眼的绿色 原创不易,路过的各位大佬请点个赞 步骤一 新建一个word空白文档。 步骤二、 依次点开“设计-页面颜色”,选择自己想要的背景色。一般豆沙绿的参数是:红:202,绿:234&…

idea常用护眼色的RGB值调整

1.保护眼睛颜色的RGB数值 银河白 #FFFFFF RGB(255, 255, 255)杏仁黄 #FAF9DE RGB(250, 249, 222)秋叶褐 #FFF2E2 RGB(255, 242, 226)胭脂红 #FDE6E0 RGB(253, 230, 224)青草绿 #E3EDCD RGB(227, 237, 205)海天蓝 #DCE2F1 RGB(220, 226, 241)葛巾…

eclispe 护眼色设置

1.Eclipse字体大小调整: 窗口(Window)-首选项(Preferences)-> General)-> Appearence -> Colors And Fonts -> Java -> Java Editor Text Font -> Change : 2.Eclipse xml和jsp文件字体大小调整&#x…

eclipse 护眼色设置

1 调整eclipse editor区域背景色 背景颜色向你推荐:色调:85。饱和度:1 2 3。亮度:2 0 5 文档都不再是刺眼的白底黑字,而是非常柔和的豆沙绿色,这个色调是眼科专家配置的,长时间使用会很有效的…

idea设置背景护眼色

小伙伴们在敲代码时也要注意保护自己的眼睛哟,今天给大家介绍一种idea设置背景护眼色的办法。 1、打开你的idea,选择“文件”-->“设置”(英文版:“File”-->“Settings”) 2、点击“编辑器”-->“配色方案”…

护眼色的RGB值

1、对于现代人来说,长时间对着电脑或手机,致使我们的眼睛非常疲惫、干涩,那么设置好电脑的背景色,就会让我们的眼睛得到一定程度的放松,当然更好的办法还是做下眼保健操或走走,眺望下窗外的花草树木等。 网…

网上流行护眼色的RGB值和颜色代码汇总

网上流行护眼色的RGB值和颜色代码 在搜索引擎搜“护眼色”,就会搜出一堆关于保护眼睛的屏幕颜色文章,说的统统是一种颜色,有点像绿豆沙的颜色。方法就是在屏幕设置里, 色调:85;饱和度:123&…

SPI接口的FPGA实现(一)——SPI接口的相关基础知识

SPI系列文章主要介绍SPI接口的一些基础知识,并用DAC芯片81416的配置为例来具体说明SPI接口的具体FPGA实现。 一、SPI的基础 SPI的全称是Serial Peripheral Interface,直译过来就是串行外围接口。一般情况下,FPGA连接各种DAC和ADC&#xff0…