【Linux】知识点:线程ID与LWP 一、问题提出
在平时实验过程中,很容易发现线程的ID与命令行查看的LWP并不是同一个值,在此对该现象进行探讨 。
实验复现:
#include #include
【【Linux】知识点:线程ID与LWP】
文章插图
[root@VM-12-7-centos Blog_pthread]# ./testMain Thread id: 0xd9830740New thread id: 0xd9028700Main Thread id: 0xd9830740New thread id: 0xd9028700Main Thread id: 0xd9830740New thread id: 0xd9028700
二、问题解释
实际上,所看到的线程ID是在库中的线程ID,不是内核中的LWP,的线程ID是一个内存地址 。
在进程的地址空间中,存在一个区域为mmap区域,其中通过页表将物理内存的动态库,映射到进程的地址空间中来 。在动态库中,会存在一些数据结构来描述线程的用户级控制块,这些控制块会将线程运行的私有的临时数据进行保存,为线程私有结构,在该用户级私有结构中也保存了内核中对应的LWP 。示意图如下:
补充:
- 如何在无公网环境下访问内网搭建的个人kindle书库【内网穿透】
- 【软件测试】黑盒测试技术
- 六 Linux:系统运维常用命令
- 香榧种植的注意事项
- 【Linux】文件系统详解
- 【精品】pinia 基于插件pinia-plugin-persist的 持久化
- 1842年是什么朝代
- 1850年是什么朝代
- 1919年是什么朝代
- 1020年是什么朝代