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





posted @ 2016-06-21 02:34  U201013687  阅读(250)  评论(0编辑  收藏  举报