`
dazhilao
  • 浏览: 246032 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

【转】linux线程-sysconf系统变量

阅读更多

 

原文地址:http://deepfuture.iteye.com/blog/754933

使用sysconf( )

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

表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

线程栈存储区的

最小大小,以字节为单位


(续表)

    

名字值(Name Value)

    

_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.    //...  

代码中将sysconf( )返回的_SC_THREAD_STACK_MIN的值同PTHREAD_STACK_MIN这个常量值进行了比较。

分享到:
评论

相关推荐

    pi.rar_PI_linux 多线程_多线程_多线程求pi

    这里的“pi.rar_PI_linux 多线程_多线程_多线程求pi”主题涉及到的是利用多线程技术在Linux操作系统上计算圆周率π的过程。这个压缩包中的"pi.c"文件很可能包含了实现这一功能的C语言源代码。 圆周率π是一个无理数...

    第3章_linux多线程编程

    Linux多线程编程 1、多线程模型在单处理器模型和多处理器系统上,都能改善响应时间和吞吐量。 2、线程包含了表示进程内执行环境必须的信息,包括线程ID、一组寄存器、栈、调度优先级、策略、信号屏蔽字、errno变量、...

    Linux C函数集

    在编程领域,Linux环境下的C语言是至关重要的,因为它提供了对操作系统底层的直接访问,使得开发者可以编写高效、低级别的程序。"Linux C函数集"是一个集合,包含了大量用于Linux系统编程的C语言函数,这些函数是...

    《LinuxC 函数全集》

    在IT领域,Linux系统与C语言的结合是开发者们常用的技术栈,特别是在系统级编程、设备驱动开发以及服务器端软件开发中。《Linux C 函数全集》这本书深入介绍了Linux环境下C语言的各种库函数,帮助程序员更好地理解和...

    Linux CPU数量判断命令.docx

    总的来说,Linux系统提供了丰富的工具和接口来获取和分析硬件配置,`sysconf`函数和`/proc/cpuinfo`文件是其中最常用的。通过这些工具,我们可以准确地判断和利用CPU的数量和特性,从而更好地进行系统管理和软件优化...

    LinuxCPU数量判断命令.pdf

    总的来说,通过`sysconf`函数可以轻松获取Linux系统中的CPU数量,而物理ID和核心ID的分析则有助于我们理解多核和超线程的CPU架构。这些知识在系统管理、性能优化以及资源调度中都非常重要,特别是在服务器配置和大型...

    libstdapi是ffmpeg需要用到的一些linux api集合

    8. **系统信息获取**:`sysconf()`, `uname()`等,用于获取系统配置信息,如最大打开文件数、系统版本等。 9. **文件系统操作**:`mkdir()`, `unlink()`, `rename()`等,FFmpeg可能需要在磁盘上创建临时文件或目录...

    Linux C 函数手册.rar

    - `sysconf`获取系统配置信息,如最大打开文件描述符数,最大线程数等。 - `getpid`,`getppid`分别获取当前进程ID和父进程ID。 这本Linux C函数手册对于开发者来说是一份宝贵的资源,它详尽地解释了这些函数的...

    UNIX环境高级编程_第2版.part1

    2.5.4 sysconf、pathconf和fpathconf 函数32 2.5.5 不确定的运行时限制38 2.6 选项42 2.7 功能测试宏44 2.8 基本系统数据类型45 2.9 标准之间的冲突45 2.10 小结46 习题46 第3章文件i/o 47 3.1 引言47 ...

    UNIX环境高级编程_第2版.part2

    2.5.4 sysconf、pathconf和fpathconf 函数32 2.5.5 不确定的运行时限制38 2.6 选项42 2.7 功能测试宏44 2.8 基本系统数据类型45 2.9 标准之间的冲突45 2.10 小结46 习题46 第3章文件i/o 47 3.1 引言47 ...

    c语言对自己电脑系统测试.rar

    - 通过`<stdlib.h>`中的`malloc()`和`free()`了解内存分配和释放,以及`<unistd.h>`中的`sysconf()`获取系统配置信息,如最大打开文件数。 - `<stdio.h>`的`FILE`结构体和I/O函数可以用于磁盘文件的读写操作,进而...

    Linux C 函数详解

    7. **线程管理**:在Linux中,`pthread_create()`、`pthread_join()` 和 `pthread_exit()` 等函数用于创建、同步和结束线程,`pthread_mutex_t` 和 `pthread_cond_t` 用于线程间的互斥锁和条件变量。 8. **信号处理...

    linuxC函数参考集合

    在Linux系统中,C语言是核心编程语言,用于构建操作系统本身和各种应用程序。这个"Linux C函数参考集合"提供了一套全面的C语言函数指南,涵盖了16个主题,是学习和开发Linux环境下C程序的重要资源。以下是这些主题中...

    Linux C 函数全集

    错误处理和信息获取方面,`errno` 变量记录了最近系统调用的错误代码,`perror` 函数将错误代码转换为人类可读的错误信息。`sysconf` 和 `getconf` 可以获取系统配置信息,`time` 和 `ctime` 处理时间相关的操作。 ...

    Linux C库函数 htm格式

    除了上述常见的C库函数,Linux还提供了许多特定于系统的函数,例如与系统调用交互的`syscall`,以及访问系统信息的`sysconf`和`uname`等。 在学习和使用这些函数时,查阅在线文档如...

    linux2021_week5

    9. **配置文件和命令行参数**:`getopt()`函数用于解析命令行参数,而`sysconf()`和`getenv()`分别用于获取系统配置和环境变量。 10. **权限和访问控制**:C语言提供了`chmod()`, `chown()`, `access()`等函数,...

    UNIX环境高级编程_第二版中文

    2.5.4 sysconf、pathconf和fpathconf函数  2.5.5 不确定的运行时限制  2.6 选项  2.7 功能测试宏  2.8 基本系统数据类型  2.9 标准之间的冲突  2.10 小结  习题  第3章 文件I/O  3.1 引言  3.2...

    UNIX环境高级编程(第二版中文)

    2.5.4 sysconf、pathconf和fpathconf函数 32 2.5.5 不确定的运行时限制 38 2.6 选项 42 2.7 功能测试宏 44 2.8 基本系统数据类型 45 2.9 标准之间的冲突 45 2.10 小结 46 习题 46 第3章 文件I/O 47...

    unix环境编程电子书

    285 第11章 线程 287 11.1 引言 287 11.2 线程概念 287 11.3 线程标识 288 11.4 线程的创建 288 11.5 线程终止 291 11.6 线程同步 297 11.7 小结 311 习题 311 第12章 线程控制 313 12.1 引言 ...

Global site tag (gtag.js) - Google Analytics