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,后者同一进程的不同线路程的进程号一致。前者不一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392178.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python3虚拟环境中解决 ModuleNotFoundError: No module named '_ssl'

前提是已经安装了openssl 问题 当我在python3虚拟环境中导入ssl模块时报错,报错如下: (py3) [rootlocalhost Python-3.6.3]# python3 Python 3.6.3 (default, Nov 19 2018, 14:18:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux Type "help…

python 使用c模块_您可能没有使用(但应该使用)的很棒的Python模块

python 使用c模块by Adam Goldschmidt亚当戈德施密特(Adam Goldschmidt) 您可能没有使用(但应该使用)的很棒的Python模块 (Awesome Python modules you probably aren’t using (but should be)) Python is a beautiful language, and it contains many built-in modules that…

分布与并行计算—生产者消费者模型实现(Java)

在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者&a…

通过Xshell登录远程服务器实时查看log日志

主要想总结以下几点: 1.如何使用生成密钥的方式来登录Xshell连接远端服务器 2.在远程服务器上如何上传和下载文件(下载log文件到本地) 3.如何实时查看log,提取错误信息 一. 使用生成密钥的方式来登录Xshell连接远端服务器 ssh登录…

如何将Jupyter Notebook连接到远程Spark集群并每天运行Spark作业?

As a data scientist, you are developing notebooks that process large data that does not fit in your laptop using Spark. What would you do? This is not a trivial problem.作为数据科学家,您正在开发使用Spark处理笔记本电脑无法容纳的大数据的笔记本电脑…

是银弹吗?业务基线方法论

Fred.Brooks在1987年就提出:没有银弹。没有任何一项技术或方法可以能让软件工程的生产力在十年内提高十倍。 我无意挑战这个理论,只想讨论一个方案,一个可能大幅提高业务系统开发效率的方案。 方案描述 我管这个方案叫做“由基线扩展…

linux core无权限,linux – 为什么编辑core_pattern受限制?

当我试图为故意崩溃的程序生成核心文件时,最初的核心文件生成似乎被abrt-ccpp阻碍了.所以我尝试用vim手动编辑/ proc / sys / kernel / core_pattern:> sudo vim /proc/sys/kernel/core_pattern当我试图保存文件时,vim报告了这个错误:"/proc/sys…

nsa构架_我如何使用NSA的Ghidra解决了一个简单的CrackMe挑战

nsa构架by Denis Nuțiu丹尼斯努尤(Denis Nuțiu) 我如何使用NSA的Ghidra解决了一个简单的CrackMe挑战 (How I solved a simple CrackMe challenge with the NSA’s Ghidra) Hello!你好! I’ve been playing recently a bit with Ghidra, which is a reverse engi…

分布与并行计算—生产者消费者模型队列(Java)

在生产者-消费者模型中&#xff0c;在原有代码基础上&#xff0c;把队列独立为1个类实现&#xff0c;通过公布接口&#xff0c;由生产者和消费者调用。 public class Consumer implements Runnable {int n;CountDownLatch countDownLatch;public Consumer(BlockingQueue<In…

python 日志内容提取

问题&#xff1a;如下&#xff0c;一个很大的日志文件&#xff0c;提取 start: 到 end: 标志中间的内容 日志文件a.log xxxxx yyyyy start: start: hahahaha end: start: hahahahha end: ccccccc kkkkkkk cdcdcdcd start: hahahaha end: code import reisfindFalse with open(&…

同一服务器部署多个tomcat时的端口号修改详情

2019独角兽企业重金招聘Python工程师标准>>> 同一服务器部署多个tomcat时&#xff0c;存在端口号冲突的问题&#xff0c;所以需要修改tomcat配置文件server.xml&#xff0c;以tomcat7为例。 首先了解下tomcat的几个主要端口&#xff1a;<Connector port"808…

linux优盘驱动目录,Linux U盘加载阵列卡驱动步骤(.dd或img).doc

Linux U盘加载阵列卡驱动步骤(.dd或img)如果没有Linux的机器,可以使用安装光盘的Linux环境&#xff1a;将?U?盘完全慢速格式化&#xff0c;将驱动拷贝到U盘&#xff0c;将U盘插在服务器上&#xff0c;用Linux安装光盘第一张启动到图形安装界面&#xff0c;按Ctrl&#xff0b;…

第一章-从双向链表学习设计

链表学习链表是一种动态的数据结构使用节点作为链表的基本单位存储在节点包括数据元素和节点指针一个完整的数据链表应包括转载于:https://www.cnblogs.com/cjxltd/p/7125747.html

twitter 数据集处理_Twitter数据清理和数据科学预处理

twitter 数据集处理In the past decade, new forms of communication, such as microblogging and text messaging have emerged and become ubiquitous. While there is no limit to the range of information conveyed by tweets and texts, often these short messages are …

ios 动态化视图_如何在iOS应用中使高度收集视图动态化

ios 动态化视图by Payal Gupta通过Payal Gupta 如何在iOS应用中使集合视图的高度动态化 (How to make height of collection views dynamic in your iOS apps) 充满活力&#xff0c;就像生活一样… (Be dynamic, just like life…) Table views and collection views have alw…

新开通博客

新开通博客&#xff0c;希望兄弟们积极更新。 转载于:https://www.cnblogs.com/ydhliphonedev/archive/2011/07/28/2119720.html

思维导图分析http之http协议版本

1.结构总览 在http协议这一章&#xff0c;我将先后介绍上图六个部分&#xff0c;本文先介绍http的协议版本。 2.http协议版本 http协议的历史并不长&#xff0c;从1991的0.9版本到现在(2017)仅仅才20多年&#xff0c;算算下来,http还是正处青年&#xff0c;正是大好发展的好时光…

分布与并行计算—生产者消费者模型RabbitMQ(Java)

连接工具 public class ConnectionUtil {public static final String QUEUE_NAME"firstQueue";private static final String RABBIT_HOST "11";private static final String RABBIT_USERNAME "";private static final String RABBIT_PASSWORD…

飞腾 linux 内核,FT2004-Xenomai

移植Xenomai到基于飞腾FT2004 CPU的FT Linux系统1 目前飞腾FT2000/4相关设备驱动还没有开源&#xff0c;需要先联系飞腾软件生态部获取FT Linux源代码2 如需在x86交叉编译arm64内核&#xff0c;推荐使用Linaro gcc编译器&#xff0c;链接如下&#xff1a;https://releases.lina…

使用管道符组合使用命令_如何使用管道的魔力

使用管道符组合使用命令Surely you have heard of pipelines or ETL (Extract Transform Load), or seen some method in a library, or even heard of any tool to create pipelines. However, you aren’t using it yet. So, let me introduce you to the fantastic world of…