分类: 系统运维
2012-03-31 22:59:07
我们在2.5.4节讨论过sysconf函数。SUS定义了和线程操作相同的几种限制,我们并没有在第2章的表里显示。和其它系统限量一样,线程限量可以用sysconf查询。下表总结了这些限量。
限量名 | 描述 | 名字参数 |
---|---|---|
PTHREAD_ DESTRUCTOR_ITERATIONS | 当一个线程退出时一个实现将尝试销毁线程相关数据的最大次数。 | _SC_THREAD_ DESTRUCTOR_ITERATIONS |
PTHREAD_ KEYS_MAX | 一个进程可以创建的关键字的最大数量。 | _SC_THREAD_ KEYS_MAX |
PTHREAD_ STACK_MIN | 可以作为一个线程栈的最少字节数。 | _SC_THREAD_ STACK_MIN |
PTHREAD_ THREADS_MAX | 一个进程可以创建的最大线程数 | _SC_THREAD_ THREADS_MAX |
和sysconf报告的其它限量一样,这些限量的使用用于促进应用在不同操作系统实现的可移植性。例如,如果你的应用要求你为你管理的每个文件创建四个线程,那么你可能必须你可以并发管理的文件数,如果系统不让你创建足够的线程。
下 表展示了本文四个实现的线程限量值。当实现没有定义对于的sysconf符号(以_SC_开头)时,“无符号”被列出。如果实现的限量不确定,“无限制” 被列出。尽管如此,这并不表示这个值没有限制。一个“不支持”的项表示实现定义了对应的sysconf限量符号,但是sysconf函数不识别它。
限量 | FreeBSD 5.2.1 | Linux 2.4.22 | Mac OS X 10.3 | Solaris 9 |
---|---|---|---|---|
PTHREAD_DESTRUCTOR_INTERATIONS | 无符号 | 不支持 | 无符号 | 无限制 |
PTHREAD_KEYS_MAX | 无符号 | 不支持 | 无符号 | 无限制 |
PTHREAD_STACK_MIN | 无符号 | 不支持 | 无符号 | 4096 |
PTHREAD_THREADS_MAX | 无符号 | 不支持 | 无符号 | 无限制 |