线程和进程ID的值范围是多less?

线程和进程ID的值范围是多less?,第1张

概述线程进程ID的值范围是多less?

fork和pthread_create将返回一个进程ID或线程ID。

但是我不知道这些ID的数值范围。

现在我想创build一个查询表,在每个条目中都有一个用于线程ID的项目/字段。 每个条目的结构是这样的:

typedef struct { int seq; pthread_t tID; ... } entry_t;

当我没有得到一个线程的tID时,我想给一个无效的tID分配一个值(很快这个字段将被填充一个有效的字符,但在此之前, fill函数将检查该pID是有效的还是不)。 那么,线程和进程ID的取值范围是什么?

双向消息在OS内的两个进程之间传递

我怎样才能平行这个字计数function?

如何设置优先级来获取C / C ++中的互斥量

使用超线程运行模拟运行时

在C中同步进程和信号量和信号

Python多处理只使用一个核心

Python多处理:我怎样才能可靠地从一个subprocessredirect标准输出?

如何使用subprocess停止由单个脚本产生的所有subprocess

在进程之间进行通信时,队列对pipe道有什么优势?

如何在Python中为单个函数执行多处理?

pthread_t类型是完全不透明的。 您只能将其与pthread_equal函数进行比较,并且没有任何有效线程标识的保留值,尽管这样的值可能会添加到POSIX标准的下一个版本中。 因此,您需要在线程ID旁边存储第二个字段来跟踪是否有效。

pID的最大值是可以改变的,默认是32768,这是short int的最大值的大小,并且可以与早期版本的UNIX兼容。

您可以在/ proc / sys / kernel / pID_max中查看并更改它。

顺便说一句,

进程ID 0通常是调度程序进程,通常称为交换程序。 磁盘上的程序不对应于这个进程,它是内核的一部分,被称为系统进程。 进程ID 1通常是init进程,在引导过程结束时由内核调用。 这个进程的程序文件是在旧版本的UNIX系统中的/ etc / init,而在新版本中是/ sbin / init。 内核启动后,这个过程负责启动一个UNIX系统。 –APUE

tID仅在其所属过程的范围内才有意义。 在UNIX的不同famly中,pthread_t不是相同的类型,比如

linux 2.4.22使用pthread_t数据类型的无符号长整数。 Solaris 9将pthread_t数据类型表示为无符号整数。 FreeBSD 5.2.1和Mac OS X 10.3使用指向pthread_t数据类型的pthread结构的指针。 –APUE

所以你不能简单地告诉它的范围。

但threads_max最多显示一个进程中有多少个线程,可以在/ proc / sys / kernel / threads-max中看到并更改它。

正如其他人所指出的,没有定义值表示无效的pthread-ID。

解决这个问题的一种方法可能是修改描述线程的结构,如下所示:

typedef struct { int seq; pthread_t pthread; int pthread_is_valID; /* set this to 0 on initialisation of the structure and change it be 1 if pthread_create() was successfull. */ ... } entry_t;

另外,我建议不要调用pthread_create()的第一个参数tID设置的值,因为这会导致名称含糊不清,被gettID() ,在linux下它实际上是一个进程ID。

由于无效的进程ID -1应该做的。

我的意见为什么你不能跟踪无效的线程ID通过分配定义的错误值tID本身。 在查找表时,如果在表增长时保持添加更多成员来结构,则大小可能会受到限制。

/ *线程标识符* / typedef unsigned long int pthread_t;

在检查pthread_create结果时,可能会分配您自己定义的错误值。

例如:pthread_create失败 – 将say -ve值分配给tID。 所以虽然查找,你可以验证检查自己的#define -ve值。

总结

以上是内存溢出为你收集整理的线程和进程ID的值范围是多less?全部内容,希望文章能够帮你解决线程和进程ID的值范围是多less?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1252197.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存