linux线程-sysconf系统变量

了解系统的线程资源限制是使得应用程序恰当地管理它们的关键。前面已经讨论了利用系统资源的示例。当设置线程的栈大小时,最小值为PTHREAD_MIN_STACK。栈大小不应当低于由pthread_attr_getstacksize( )返回的默认栈大小的最小值。每个进程的最大线程数决定了能够为每个进程创建的worker线程的上限。函数sysconf( )用于返回可配置系统限制或选项的当前值。系统中定义了同线程、进程和信号量相关的多个变量和常量。在表6-8中,列出了部分变量和常量。

 

    

名字值(Name Value)

    

_SC_THREADS

_POSIX_THREADS

支持线程

_SC_THREAD_ATTR_STACKADDR

_POSIX_THREAD_ATTR_STACKADDR

支持线程栈地址属性

_SC_THREAD_ATTR_STACKSIZE

_POSIX_THREAD_ATTR_STACKSIZE

支持线程栈大小属性

_SC_THREAD_STACK_MIN

PTHREAD_STACK_MIN

线程栈存储区的最小大小,以字节为单位

_SC_THREAD_THREADS_MAX

PTHREAD_THREADS_MAX

每个进程的最大线程数

_SC_THREAD_KEYS_MAX

PTHREAD_KEYS_MAX

每个进程关键字的最大数目

_SC_THREAD_PRIO_INHERIT

_POSIX_THREAD_PRIO_INHERIT

支持优先级继承选项

_SC_THREAD_PRIO

_POSIX_THREAD_PRIO_

支持线程优先级选项

_SC_THREAD_PRIORITY_SCHEDULING

_POSIX_THREAD_PRIORITY_SCHEDULING

支持线程优先级调度选项

_SC_THREAD_PROCESS_SHARED

_POSIX_THREAD_PROCESS_SHARED

支持进程共享同步

_SC_THREAD_SAFE_FUNCTIONS

_POSIX_THREAD_SAFE_FUNCTIONS

支持线程安全函数

_SC_THREAD_DESTRUCTOR_ITERATIONS

_PTHREAD_THREAD_DESTRUCTOR_ITERATIONS

决定在线程退出时尝试销毁线程特定数据的尝试次数

_SC_CHILD_MAX

CHILD_MAX

每个UID允许的最大进程数目

_SC_PRIORITY_SCHEDULING

_POSIX_PRIORITY_SCHEDULING

支持进程调度

_SC_REALTIME_SIGNALS

_POSIX_REALTIME_SIGNALS

支持实时信号

_SC_XOPEN_REALTIME_THREADS

_XOPEN_REALTIME_THREADS

支持X/Open POSIX实时线程特性组

_SC_STREAM_MAX

STREAM_MAX

决定进程能够打开的流的数目

_SC_SEMAPHORES

_POSIX_SEMAPHORES

支持信号量

_SC_SEM_NSEMS_MAX

SEM_NSEMS_MAX

决定线程能够拥有的信号量的最大数目

_SC_SEM_VALUE_MAX

SEM_VALUE_MAX

决定信号量的最大值

_SC_SHARED_MEMORY_OBJECTS

_POSIX_SHARED_MEMORY_OBJECTS

支持共享内存对象

 

下面是调用sysconf( )的示例:

  1. if(PTHREAD_STACK_MIN == (sysconf(_SC_THREAD_STACK_MIN))){  
  2.    //...  

参考网址: 

http://deepfuture.javaeye.com/category/120753?page=4&show_full=true

posted @ 2011-02-16 21:11  程序员天下  阅读(653)  评论(0编辑  收藏  举报