12.2 线程限制

Posted U201013687

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了12.2 线程限制相关的知识,希望对你有一定的参考价值。


我们已经在2.5.4节中讨论了函数sysconf,The Single Unix Specification定义了与线程操作相关的几个限制。与其他系统限制一样,线程限制也可以使用函数sysconf进行查询,图12.1总结了这些限制.
与其他使用sysconf获取到的系统限制一样,这些限制的应用是为了促进应用程序在不同操作系统实现上的可移植性,比如说,如果你的应用程序需要你为你所管理的每个文件创建4个线程,如果系统并不能让你创建无限多的线程,那么你就需要限制你能够同时管理的文件数量。

限制名称 描述 名称参数
PTHREAD_DESTRUCTOR_ITERATIONS 在线程退出时实现尝试释放线程私有数据的最大尝试次数(12.6节) _SC_THREAD_DESTRUCTOR_ITERATIONS
PTHREAD_KEYS_MAX maximum number of keys that can be created by a process(12.6节) _SC_THREAD_KEYS_MAX
PTHREAD_STACK_MIN minimum number of bytes that can be used for a thread’s stack(12.3节)_SC_THREAD_STACK_MIN
PTHREAD_THREADS_MAX maximum number of threads that can be created in a process(12.3节) _SC_THREAD_THREADS_MAX

图12.1 线程限制以及sysconf使用的名称参数
图12.2显示了本书描述的四个平台上的线程限制。如果实现的限制并不明确,列表中采用”no list”进行标注,然而,这并不意味该数值是无限的。

注意虽然实现可能并没有提供对这些资源限制的访问,但是并不表示限制不存在,这只是说明实现没有提供使用sysconf函数获取线程资源限制的方法。

限制 FreeBSD 8.0 Linux 3.2.0 Mac OS X 10.6.8 Solaris 10
PTHREAD_DESTRUCTOR_ITERATIONS 4 4 4 no limit
PTHREAD_KEYS_MAX 256 1024 512 no limit
PTHREAD_STACK_MIN 2048 16384 8192 8192
PTHREAD_THREADS_MAX no limit no limit no limit no limit





以上是关于12.2 线程限制的主要内容,如果未能解决你的问题,请参考以下文章

UNIX-线程(下)线程控制

SylixOS线程私有数据浅析

Linux最大线程数限制及当前线程数查询

提升线程:是不是可以在移动到另一个线程之前限制线程的运行时间

Java多线程编程之限制优先级

如何将 Tokio 线程池限制为一定数量的本机线程?