linux线程-sysconf系统变量

    技术2025-12-08  13

    了解系统的线程资源限制是使得应用程序恰当地管理它们的关键。前面已经讨论了利用系统资源的示例。当设置线程的栈大小时,最小值为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( )的示例:

    if(PTHREAD_STACK_MIN == (sysconf(_SC_THREAD_STACK_MIN))){     //...  } 

    参考网址: 

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

    最新回复(0)