Linux线程ID与内核LWP的关系

article/2025/8/22 6:00:33

先给出图,然后我将根据图来讲解二者的关系:

线程ID

在这里插入图片描述
在使用线程前,我们需要链接线程的pthread第三方库,在Linux中,第三方库被加载到PCB进程中的虚拟地址空间中的栈区与堆区之间的共享区。
我们所创建线程的控制块即维护线程的内容都存在pthread第三方库中,当我们创建线程时候大致的流程如下:
1.磁盘将pthread库加载到物理内存中
2.通过页表映射(不是拷贝!!!)到进程地址空间中的共享区,因为是映射,所以每个进程共用一份pthread库。
3.pthread库中存在很多线程的控制块struct pthread,每个块中都保存了维护这个线程内容,比如线程的私有栈(main函数即主进程用的栈不是这里的,而是地址空间中的主进程栈,就是我们平时说的栈区)
4.我们主进程创建了新线程,通过什么来找到我们唯一的线程呢?答:通过线程ID!!而线程ID存在哪里呢?答:存在pthread库中!!
我们用户所看到的线程ID号其实是物理内存中pthread库通过页表映射到地址空间当中的虚拟地址!!
总结,线程ID是一个被映射进当前进程地址空间的,pthread库当中的内部的一个地址数据,用它来充当线程ID。在用户层上这个线程内部包含了线程的私有栈,线程局部各种存储(包括描述线程的各种结构都在这里保存)因此,我们只要拿到了线程ID就可以拿到该线程的所有用户级数据!!

线程ID与内核LWP的关系

在这里插入图片描述
总结:在Linux中,每个线程与内核中的LWP是1:1对应关系,每个线程控制块中都存在一个与之相对应的存在于内核中的LWP!
就好比FILE文件中一定存了他的文件描述符

在这里插入图片描述


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

相关文章

LWP(Library for WWW in Perl)的基本使用

LWP (“Library for WWW in Perl” 的缩写) 是一个由多个模块组成,用来获取网络数据的的模块组。 和很多 Perl 的模块一样。每一个 LWP 模块都自带详细的文档,做为对这个模块的完整介绍。可是面对 LWP 里的众多模块,有时候即使是完成最简单的…

Linux进程和轻量级进程(LWP)

1.父子进程可以共享含有程序代码的页,但是他们各自有独立的数据拷贝(堆和栈)。 2.进程描述符 3.进程的TASK_INTERRUPTIBLE和TASK_UNINTERRUPTIBLE区别

lwIP 开发指南

目录 lwIP 初探TCP/IP 协议栈是什么TCP/IP 协议栈架构TCP/IP 协议栈的封包和拆包 lwIP 简介lwIP 源码下载lwIP 文件说明 MAC 内核简介(STM32 内置)PHY 芯片介绍(以太网芯片 外置)YT8512C 简介LAN8720A 简介 以太网接入MCU 方案软件TCP/IP 协议栈以太网接入方案硬件TCP/IP 协议栈…

Linux:获取线程的PID(TID、LWP)的几种方式

Linux:获取线程的PID(TID、LWP)的几种方式 在 Linux C/C 中通常是通过 pthread 库进行线程级别的操作。 在 pthread 库中有函数: pthread_t pthread_self(void);它返回一个 pthread_t 类型的变量,指代的是调用 pthr…

lwip-简介

文章目录 简介层次划分传输过程 简介 lwip的介绍就不累赘了&#xff0c;网上有许多教程。这里推荐野火的<<《[野火]LwIP应用开发实战指南—基于野火STM32》—20210122.pdf>>介绍的非常详细。&#xff08;该文档我已上传到资源了&#xff09;我们记录主要是一些用法…

Linux下的LWP(轻量级进程)、进程 、 线程、用户级线程、内核线程

一、定义 再看正文之前我要先强调一下几点&#xff1a; 1. Linux中没有真正的线程&#xff0c;但windows中确实有线程 2. Linux中没有的线程是由进程来模拟实现的&#xff08;又称作&#xff1a;轻量级进程&#xff09; 3. 所以在Linux中&#xff08;在CPU角度看&#xff0…

LWIP框架

目录 协议栈分层思想 1. 网络接口层 2. 网络层 3. 传输层 4. 应用层 进程模型 单进程模型 协议栈编程接口 1、Raw/Callback API 2、Netconn API 3、Socket API 协议栈分层思想 TCP/IP协议完整的包含了一系列构成互联网基础的网络协议&#xff0c;TCP/IP协议的开发出…

lwip协议

LWIP版本号 野火LwIP应用开发实战指南&#xff1a;基于STM32 lwIP 2.1.0 Lightweight IP stack lwip的版本号在哪个文件里能看到&#xff1f; 关于LWIP几篇不错的文章分享 LwIP应用开发实战指南 LwIP多TCP连接问题 lwIP TCP/IP 协议栈笔记之十&#xff1a; LwIP 数据流框架 wir…

LWP 与 WEB 的基本使用

简介 LWP (“Library for WWW in Perl” 的缩写) 是一个由多个模块组成&#xff0c;用来获取网络数据的的模块组。 和很多 Perl 的模块一样。每一个 LWP 模块都自带详细的文档&#xff0c;做为对这个模块的完整介绍。可是面对 LWP 里的众多模块&#xff0c;有时候即使是完成最简…

LWIP协议与TCP/IP

1. 学习一个东西&#xff0c;先了解这个东西是干什么用的&#xff0c;哪些场景会用到它&#xff0c;与自己已经掌握的其他知识的联系 a. 例如&#xff1a;LWIP这个东西是干什么用的&#xff1a;他就是一个裁剪后保持大部分TCP/IP功能的协议。用少量的资源消耗实现一个较为完整的…

[Linux]线程概念_线程控制(线程与进程的区别与联系 | 线程创建 | 线程等待 | 线程终止 | 线程分离 | LWP)

文章目录 线程概念进程和线程的关系线程的优点线程的缺点 线程控制Linux线程和接口关系的认识线程创建线程ID及进程地址空间布局线程等待线程终止线程终止状态线程分离LWP和pthread_t 线程概念 线程是在进程内部运行的一个执行分支&#xff08;执行流&#xff09;&#xff0c;…

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

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

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

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

LWIP简介

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

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

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

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

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

Linux-线程(LWP)

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

护眼色的RGB值 和 颜色代码

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

护眼绿RGB值

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

护眼参数设置

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