linux 线程与进程 pid,linux下线程所属进程号问题
这一段看《unix环境高级编程》,一个关于线程的小例子。
#include
#include
#include
pthread_t ntid;
void printids(const char *s){
pid_t pid;
pthread_t tid;
pid=getpid();
tid=pthread_self();
printf("%s pid %u tid %u (0x%x)n",s,(unsigned int)pid,
(unsigned int)tid,(unsigned int)tid);
}
void *thr_fn(void *arg){
printids("new thread:");
return ((void *)0);
}
int main(){
int err;
err=pthread_create(&ntid,NULL,thr_fn,NULL);
if(err!=0)
fprintf(stderr,"can't create threadn");
printids("main thread");
sleep(1);
exit(0);
}
根据线程模型,在同一进程环境下的线程有不同的线程ID,但所在进程ID相同。书上说linux是使用clone系统调用来实现pthread_create的,执行这段程序得到的主线程和新线程所在的进程号并不是匹配的。可我在机器上试了一下,进程号是相同的。这是其中一次运行结果:
new thread: pid 2568 tid 3076471728 (0xb75f3bb0)
main thread pid 2568 tid 3076476448 (0xb75f4e20)
系统是用的是redhat enterprise AS 3 update 5,内核V 2.4.21-32.ELsmp
莫非实现变了?。。。
|
getconf GNU_LIBPTHREAD_VERSION
用上面的命令,看一下输出,就知道你使用的线程库是LinuxThread还是NPTL,后者同一进程的不同线路程的进程号一致。前者不一致
linux 线程与进程 pid,linux下线程所属进程号问题相关推荐
- linux u盘 uid pid,linux下的pid文件的作用
在Linux系统的目录/var/run下面一般我们都会看到很多的*.pid文件.而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件.那么这些pid文件有什么作用呢?它的内容 ...
- linux mysql查看所有表_linux下查看指定进程的所有连接信息
定位某个进程的网络故障时经常需要用到的一个功能就是查找所有连接的信息.通常查找某个端口的连接信息使用 ss 或者 netstat 可以轻松拿到,如果是主动与别的机器建立的连接信息则可以通过 lsof ...
- tasklist 结束进程_Windows: windows下的终止进程的命令(tasklist/tskill)
在Unix/Linux下可以使用ps/kill命令查找/终止一个正在运行的进程, Windows平台下也有一组类似的命令: tasklist/tskill C:\>tskill /? 结束进程. ...
- linux的目录proc pid,Linux /proc第一篇----/proc/pid记录了什么
由于自己Linux系统知识基础比较薄弱,准备比较全面学习,准备从/proc这个目录开始.实际上这个目录也基本上记录所有系统运行时和内核的一些信息,所以如果想对linux系统有一个比较全面的了解,从/p ...
- win10taskkill强行结束进程_批处理文件BAT找到进程PID并强制结束TaskKill进程
Taskkill 1 简介 taskkill 是用来终止进程的.具体的命令规则如下: TASKKILL [/S system [/U username [/P [ password ]]]] { [/ ...
- Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度
Linux下有3个特殊的进程,idle进程(PID=0PID=0), init进程(PID=1PID=1)和kthreadd(PID=2PID=2) * idle进程由系统自动创建, 运行在内核态 i ...
- linux yield_通俗易懂的了解——Linux线程模型和线程切换
本文从linux中的进程.线程实现原理开始,扩展到linux线程模型,最后简单解释线程切换的成本. linux中的进程与线程 首先明确进程与进程的基本概念: 进程是资源分配的基本单位 线程是CPU调度 ...
- linux init进程原理,Linux 系统下 init 进程的前世今生
原标题:Linux 系统下 init 进程的前世今生 Linux系统中的 init 进程 (pid=1) 是除了 idle 进程 (pid=0,也就是 init_task) 之外另一个比较特殊的进程, ...
- linux命令获取进程pid_查看所有进程PID号的linux命令 - 卡饭网
win10如何通过PID号结束进程 win10如何通过PID号结束进程 1.按CTRL+SHIFT+ESC键直接调用任务管理器 2.也可以通过按CTRL+ALT+DEL键选择[任务管理器]来调用[任务 ...
最新文章
- Python高级特性:切片、迭代、列表生成式、生成器与迭代器
- Docker中的Java内存消耗优化以及我们如何使用Spring Boot
- 10 种机器学习算法的要点(附 Python 和 R 代码)(转载)
- 【opencv】YUV各种色彩、YUV420sp2RGB
- ABAP 如何实现屏幕字段不可输入
- Java中的数组怎么弄随机数_Java – 如何从值数组中创建随机数
- SQL Tree解法
- 爬虫软件python功能_Python 网络爬虫程序详解
- mac电脑快捷键(持续更新)
- 【ES9(2018)】String 扩展 标签模板里字符串转义
- java面向对象的特征封装_Java总结-Java面向对象的基本特征之一:封装性
- mysql 物化视图_Mysql物化视图应用
- 9550电机_电机扭矩计算公式里面的9550*P是怎么得来的?
- java实现将.acc格式转化为mp3格式
- Python 毕设精品实战案例——快速索引目录Part2
- SQL注入常用WAF绕过姿势
- obs多推流地址_OBS直播进阶操作使用手册
- CLIP Passo:Semantically-Aware Object Sketching图像生成简笔画
- Android 调用系统裁剪,适配11和12及手机
- 敏捷开发中QA如何做质量管理?
热门文章
- 设置Proxy Server和SQL Server实现数据库安全
- 彻底搞懂 JS 中 this 机制
- Java 9 将采用新的版本字符串格式
- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart)
- ABP文档 - Javascript Api - AJAX
- oschina下载工具
- ios下使用rsa算法与php进行加解密通讯
- linux dhcp 服务(转)
- r psm倾向性匹配_南瓜香料指标psm如何规划季节性广告
- leetcode 872. 叶子相似的树(dfs)